File tree 5 files changed +13
-8
lines changed 5 files changed +13
-8
lines changed Original file line number Diff line number Diff line change @@ -107,6 +107,7 @@ def _env_threadless_compliant() -> bool:
107
107
DEFAULT_MAX_SEND_SIZE = 16 * 1024
108
108
DEFAULT_WORK_KLASS = 'proxy.http.HttpProtocolHandler'
109
109
DEFAULT_ENABLE_PROXY_PROTOCOL = False
110
+ DEFAULT_SELECTOR_SELECT_TIMEOUT = 0.1
110
111
111
112
DEFAULT_DEVTOOLS_DOC_URL = 'http://proxy'
112
113
DEFAULT_DEVTOOLS_FRAME_ID = secrets .token_hex (8 )
Original file line number Diff line number Diff line change 29
29
30
30
from ..event import EventQueue
31
31
32
+ from ...common .constants import DEFAULT_SELECTOR_SELECT_TIMEOUT
32
33
from ...common .utils import is_threadless
33
34
from ...common .logger import Logger
34
35
@@ -105,7 +106,7 @@ def __init__(
105
106
def run_once (self ) -> None :
106
107
with self .lock :
107
108
assert self .selector and self .sock
108
- events = self .selector .select (timeout = 1 )
109
+ events = self .selector .select (timeout = DEFAULT_SELECTOR_SELECT_TIMEOUT )
109
110
if len (events ) == 0 :
110
111
return
111
112
conn , addr = self .sock .accept ()
@@ -131,6 +132,7 @@ def run(self) -> None:
131
132
try :
132
133
self .selector .register (self .sock , selectors .EVENT_READ )
133
134
while not self .running .is_set ():
135
+ # logger.debug('Looking for new work')
134
136
self .run_once ()
135
137
except KeyboardInterrupt :
136
138
pass
Original file line number Diff line number Diff line change 32
32
33
33
from ...common .logger import Logger
34
34
from ...common .types import Readables , Writables
35
- from ...common .constants import DEFAULT_TIMEOUT
35
+ from ...common .constants import DEFAULT_TIMEOUT , DEFAULT_SELECTOR_SELECT_TIMEOUT
36
36
37
37
logger = logging .getLogger (__name__ )
38
38
@@ -94,7 +94,7 @@ def selected_events(self) -> Generator[
94
94
# ValueError exceptions raised by selector.register
95
95
# for invalid fd.
96
96
self .selector .register (fd , worker_events [fd ])
97
- ev = self .selector .select (timeout = 1 )
97
+ ev = self .selector .select (timeout = DEFAULT_SELECTOR_SELECT_TIMEOUT )
98
98
readables = []
99
99
writables = []
100
100
for key , mask in ev :
@@ -219,6 +219,7 @@ def run(self) -> None:
219
219
self .selector .register (self .client_queue , selectors .EVENT_READ )
220
220
self .loop = asyncio .get_event_loop_policy ().get_event_loop ()
221
221
while not self .running .is_set ():
222
+ # logger.debug('Working on {0} works'.format(len(self.works)))
222
223
self .run_once ()
223
224
except KeyboardInterrupt :
224
225
pass
Original file line number Diff line number Diff line change 31
31
from ..core .base import BaseTcpServerHandler
32
32
from ..core .connection import TcpClientConnection
33
33
from ..common .flag import flags
34
- from ..common .constants import DEFAULT_CLIENT_RECVBUF_SIZE , DEFAULT_KEY_FILE , DEFAULT_TIMEOUT
34
+ from ..common .constants import DEFAULT_CLIENT_RECVBUF_SIZE , DEFAULT_KEY_FILE
35
+ from ..common .constants import DEFAULT_SELECTOR_SELECT_TIMEOUT , DEFAULT_TIMEOUT
35
36
36
37
37
38
logger = logging .getLogger (__name__ )
@@ -365,7 +366,7 @@ def _selected_events(self) -> SelectedEventsGeneratorType:
365
366
events = self .get_events ()
366
367
for fd in events :
367
368
self .selector .register (fd , events [fd ])
368
- ev = self .selector .select (timeout = 1 )
369
+ ev = self .selector .select (timeout = DEFAULT_SELECTOR_SELECT_TIMEOUT )
369
370
readables = []
370
371
writables = []
371
372
for key , mask in ev :
@@ -396,7 +397,7 @@ def _flush(self) -> None:
396
397
while self .work .has_buffer ():
397
398
ev : List [
398
399
Tuple [selectors .SelectorKey , int ]
399
- ] = self .selector .select (timeout = 1 )
400
+ ] = self .selector .select (timeout = DEFAULT_SELECTOR_SELECT_TIMEOUT )
400
401
if len (ev ) == 0 :
401
402
continue
402
403
self .work .flush ()
Original file line number Diff line number Diff line change 25
25
26
26
from ..parser import httpParserTypes , HttpParser
27
27
28
- from ...common .constants import DEFAULT_BUFFER_SIZE
28
+ from ...common .constants import DEFAULT_BUFFER_SIZE , DEFAULT_SELECTOR_SELECT_TIMEOUT
29
29
from ...common .utils import new_socket_connection , build_websocket_handshake_request , text_
30
30
from ...core .connection import tcpConnectionTypes , TcpConnection
31
31
@@ -93,7 +93,7 @@ def run_once(self) -> bool:
93
93
if self .has_buffer ():
94
94
ev |= selectors .EVENT_WRITE
95
95
self .selector .register (self .sock .fileno (), ev )
96
- events = self .selector .select (timeout = 1 )
96
+ events = self .selector .select (timeout = DEFAULT_SELECTOR_SELECT_TIMEOUT )
97
97
self .selector .unregister (self .sock )
98
98
for _ , mask in events :
99
99
if mask & selectors .EVENT_READ and self .on_message :
You can’t perform that action at this time.
0 commit comments