@@ -132,24 +132,26 @@ def unregister_job(self, job: Job) -> None:
132132 pass
133133
134134 def step (self ) -> None :
135+ self ._poll_file ()
136+ try :
137+ data = self .socket .recv (_StatusUpdater .RECV_BUFSZ )
138+ self ._process_update_data (data )
139+ except TimeoutError :
140+ pass
141+ except socket .timeout :
142+ # before 3.10, this was a separate exception from TimeoutError
143+ pass
144+ except BlockingIOError :
145+ pass
146+
147+ def _poll_file (self ) -> None :
135148 self .update_file .seek (0 , io .SEEK_END )
136149 pos = self .update_file .tell ()
137150 if pos > self .update_file_pos :
138151 self .update_file .seek (self .update_file_pos , io .SEEK_SET )
139152 n = pos - self .update_file_pos
140153 self ._process_update_data (self .update_file .read (n ))
141154 self .update_file_pos = pos
142- else :
143- try :
144- data = self .socket .recv (_StatusUpdater .RECV_BUFSZ )
145- self ._process_update_data (data )
146- except TimeoutError :
147- pass
148- except socket .timeout :
149- # before 3.10, this was a separate exception from TimeoutError
150- pass
151- except BlockingIOError :
152- pass
153155
154156 def run (self ) -> None :
155157 while True :
@@ -168,6 +170,7 @@ def flush(self) -> None:
168170 token = '_SYNC ' + str (random .getrandbits (128 ))
169171 sock = socket .socket (socket .AF_INET , socket .SOCK_DGRAM )
170172 sock .sendto (bytes (token , 'utf-8' ), ('127.0.0.1' , self .update_port ))
173+ self ._poll_file ()
171174 delay = 0.0001
172175 while token not in self ._sync_ids :
173176 time .sleep (delay )
0 commit comments