Fix rpc socket.

master
Marko Semet 2020-04-16 14:53:48 +02:00
parent 5debffbd58
commit d19d8c0198
1 changed files with 6 additions and 2 deletions

View File

@ -30,7 +30,11 @@ async def run_access_socket(path:str, async_callback, fork:bool):
uid = str(tmp)
# Run callback
await async_callback(read, write, uid)
try:
await async_callback(read, write, uid)
finally:
write.close()
await write.wait_closed()
server = await asyncio.start_unix_server(run_func, path=path)
os.chmod(path, 0o666)
if fork:
@ -46,7 +50,7 @@ def rpc_callback(async_func):
while not read.at_eof():
# Read data
try:
size = _format_length.unpack(await read.readexactly(_format_length.size))
(size,) = _format_length.unpack(await read.readexactly(_format_length.size))
except asyncio.exceptions.IncompleteReadError:
return # Client closed normaly
data = json.loads((await read.readexactly(size)).decode("UTF-8"))