Make PipeHandler able handle more pipes
This commit is contained in:
parent
95673cb2c2
commit
290712d64f
@ -48,16 +48,18 @@ class PipeReaderThread(Thread):
|
|||||||
|
|
||||||
|
|
||||||
class PipeHandler:
|
class PipeHandler:
|
||||||
def __init__(self, pipe_path):
|
def __init__(self, *pipe_paths):
|
||||||
self._pipe_path = pipe_path
|
self._pipe_paths = pipe_paths
|
||||||
|
|
||||||
def recreate(self):
|
def recreate(self):
|
||||||
self.remove()
|
self.remove()
|
||||||
mkfifo(self._pipe_path)
|
for pipe_path in self._pipe_paths:
|
||||||
|
mkfifo(pipe_path)
|
||||||
|
|
||||||
def remove(self):
|
def remove(self):
|
||||||
if exists(self._pipe_path):
|
for pipe_path in self._pipe_paths:
|
||||||
remove(self._pipe_path)
|
if exists(pipe_path):
|
||||||
|
remove(pipe_path)
|
||||||
|
|
||||||
|
|
||||||
class PipeIOServer:
|
class PipeIOServer:
|
||||||
@ -76,8 +78,7 @@ class PipeIOServer:
|
|||||||
pipe_id = token_urlsafe(6)
|
pipe_id = token_urlsafe(6)
|
||||||
self.in_pipe = join('/tmp', f'in_pipe_{pipe_id}')
|
self.in_pipe = join('/tmp', f'in_pipe_{pipe_id}')
|
||||||
self.out_pipe = join('/tmp', f'out_pipe_{pipe_id}')
|
self.out_pipe = join('/tmp', f'out_pipe_{pipe_id}')
|
||||||
PipeHandler(self.in_pipe).recreate()
|
PipeHandler(self.in_pipe, self.out_pipe).recreate()
|
||||||
PipeHandler(self.out_pipe).recreate()
|
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
for thread in self._io_threads.values():
|
for thread in self._io_threads.values():
|
||||||
@ -86,8 +87,7 @@ class PipeIOServer:
|
|||||||
def stop(self):
|
def stop(self):
|
||||||
for thread in self._io_threads.values():
|
for thread in self._io_threads.values():
|
||||||
thread.stop()
|
thread.stop()
|
||||||
PipeHandler(self.in_pipe).remove()
|
PipeHandler(self.in_pipe, self.out_pipe).remove()
|
||||||
PipeHandler(self.out_pipe).remove()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
Reference in New Issue
Block a user