diff options
author | Paul Barker <pbarker@konsulko.com> | 2021-06-07 16:03:33 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-07-29 23:21:24 +0100 |
commit | 445c5b9324a6243a0a3941c5f00e369d7749efde (patch) | |
tree | 35bd69ece70784d0b4675bf2e6f99a016924b9c5 /bitbake | |
parent | 57ec655accca89f0e8d1756cf7b2e73741240e11 (diff) | |
download | poky-445c5b9324a6243a0a3941c5f00e369d7749efde.tar.gz |
bitbake: asyncrpc: Set timeout when waiting for reply from server
(Bitbake rev: b31f1853d7fcb8b8f8885ca513a0021a5d0301e6)
Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/asyncrpc/client.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/bitbake/lib/bb/asyncrpc/client.py b/bitbake/lib/bb/asyncrpc/client.py index d917ab597c..3eb4fdde8a 100644 --- a/bitbake/lib/bb/asyncrpc/client.py +++ b/bitbake/lib/bb/asyncrpc/client.py | |||
@@ -11,13 +11,14 @@ from . import chunkify, DEFAULT_MAX_CHUNK | |||
11 | 11 | ||
12 | 12 | ||
13 | class AsyncClient(object): | 13 | class AsyncClient(object): |
14 | def __init__(self, proto_name, proto_version, logger): | 14 | def __init__(self, proto_name, proto_version, logger, timeout=30): |
15 | self.reader = None | 15 | self.reader = None |
16 | self.writer = None | 16 | self.writer = None |
17 | self.max_chunk = DEFAULT_MAX_CHUNK | 17 | self.max_chunk = DEFAULT_MAX_CHUNK |
18 | self.proto_name = proto_name | 18 | self.proto_name = proto_name |
19 | self.proto_version = proto_version | 19 | self.proto_version = proto_version |
20 | self.logger = logger | 20 | self.logger = logger |
21 | self.timeout = timeout | ||
21 | 22 | ||
22 | async def connect_tcp(self, address, port): | 23 | async def connect_tcp(self, address, port): |
23 | async def connect_sock(): | 24 | async def connect_sock(): |
@@ -70,7 +71,11 @@ class AsyncClient(object): | |||
70 | 71 | ||
71 | async def send_message(self, msg): | 72 | async def send_message(self, msg): |
72 | async def get_line(): | 73 | async def get_line(): |
73 | line = await self.reader.readline() | 74 | try: |
75 | line = await asyncio.wait_for(self.reader.readline(), self.timeout) | ||
76 | except asyncio.TimeoutError: | ||
77 | raise ConnectionError("Timed out waiting for server") | ||
78 | |||
74 | if not line: | 79 | if not line: |
75 | raise ConnectionError("Connection closed") | 80 | raise ConnectionError("Connection closed") |
76 | 81 | ||