@@ -73,9 +73,10 @@ def db_config(db_dir):
7373 f .close ()
7474 return db_config_name
7575
76- def _support_arg ( arg ):
76+ def _support_args ( args ):
7777 ret = subprocess .check_output ([get_rstudio_executable ('rserver' ), '--help' ])
78- return ret .decode ().find (arg ) != - 1
78+ help_output = ret .decode ()
79+ return {arg : (help_output .find (arg ) != - 1 ) for arg in args }
7980
8081 def _get_www_frame_origin (default = "same" ):
8182 try :
@@ -102,13 +103,32 @@ def _get_cmd(port):
102103 ]
103104 # Support at least v1.2.1335 and up
104105
105- if _support_arg ('www-root-path' ):
106+ supported_args = _support_args ([
107+ 'www-root-path' ,
108+ 'server-data-dir' ,
109+ 'database-config-file' ,
110+ 'www-thread-pool-size' ,
111+ 'www-socket' ,
112+ ])
113+ if supported_args ['www-root-path' ]:
106114 cmd .append ('--www-root-path={base_url}rstudio/' )
107- if _support_arg ( 'server-data-dir' ) :
115+ if support_args [ 'server-data-dir' ] :
108116 cmd .append (f'--server-data-dir={ server_data_dir } ' )
109- if _support_arg ( 'database-config-file' ) :
117+ if support_args [ 'database-config-file' ] :
110118 cmd .append (f'--database-config-file={ database_config_file } ' )
111119
120+ if supported_args ['www-thread-pool-size' ]:
121+ try :
122+ thread_pool_size = int (os .getenv ('RSERVER_THREAD_POOL_SIZE' , "" ))
123+ if thread_pool_size > 0 :
124+ cmd .append ('--www-thread-pool-size=' + str (thread_pool_size ))
125+ except :
126+ pass
127+
128+ #if unix_socket != "":
129+ # if supported_args['www-socket']:
130+ # cmd.append('--www-socket={unix_socket}')
131+
112132 return cmd
113133
114134 def _get_timeout (default = 15 ):
0 commit comments