Skip to content

Commit bb01e47

Browse files
committed
Get rid of the stop bit
1 parent e3bceec commit bb01e47

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

pdm/builders/base.py

+6-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from __future__ import annotations
22

3-
import base64
43
import logging
54
import os
65
import subprocess
@@ -39,8 +38,6 @@ def __init__(self, logger: Logger, level: int) -> None:
3938
# create the pipe and reader
4039
self.fd_read, self.fd_write = os.pipe()
4140
self.reader = os.fdopen(self.fd_read)
42-
# A sentinel random string as stop sign
43-
self._stop_bit = base64.b85encode(os.urandom(16)).decode() + "\n"
4441

4542
self.start()
4643

@@ -52,18 +49,17 @@ def remove_newline(msg: str) -> str:
5249
return msg[:-1] if msg.endswith("\n") else msg
5350

5451
def run(self) -> None:
55-
for line in self.reader:
56-
if line == self._stop_bit:
57-
os.close(self.fd_read)
58-
break
59-
self._write(self.remove_newline(line))
52+
try:
53+
for line in self.reader:
54+
self._write(self.remove_newline(line))
55+
finally:
56+
self.reader.close()
6057

6158
def _write(self, message: str) -> None:
6259
self.logger.log(self.level, message)
6360

6461
def stop(self) -> None:
65-
with os.fdopen(self.fd_write, "w") as f:
66-
f.write(self._stop_bit)
62+
os.close(self.fd_write)
6763
self.join()
6864

6965

0 commit comments

Comments
 (0)