Skip to content

Commit c4721b4

Browse files
committed
Poll the file, too, on flush.
1 parent 2b64908 commit c4721b4

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/psij/utils.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)