diff options
Diffstat (limited to 'continuedev/src')
| -rw-r--r-- | continuedev/src/continuedev/server/gui.py | 9 | ||||
| -rw-r--r-- | continuedev/src/continuedev/server/ide.py | 8 | 
2 files changed, 13 insertions, 4 deletions
| diff --git a/continuedev/src/continuedev/server/gui.py b/continuedev/src/continuedev/server/gui.py index 9a411fbe..4201353e 100644 --- a/continuedev/src/continuedev/server/gui.py +++ b/continuedev/src/continuedev/server/gui.py @@ -1,3 +1,4 @@ +import asyncio  import json  from fastapi import Depends, Header, WebSocket, APIRouter  from starlette.websockets import WebSocketState, WebSocketDisconnect @@ -60,8 +61,12 @@ class GUIProtocolServer(AbstractGUIProtocolServer):              "data": data          }) -    async def _receive_json(self, message_type: str) -> Any: -        return await self.sub_queue.get(message_type) +    async def _receive_json(self, message_type: str, timeout: int = 5) -> Any: +        try: +            return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout) +        except asyncio.TimeoutError: +            raise Exception( +                "GUI Protocol _receive_json timed out after 5 seconds")      async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:          await self._send_json(message_type, data) diff --git a/continuedev/src/continuedev/server/ide.py b/continuedev/src/continuedev/server/ide.py index 77b13483..e5e8de02 100644 --- a/continuedev/src/continuedev/server/ide.py +++ b/continuedev/src/continuedev/server/ide.py @@ -156,8 +156,12 @@ class IdeProtocolServer(AbstractIdeProtocolServer):              "data": data          }) -    async def _receive_json(self, message_type: str) -> Any: -        return await self.sub_queue.get(message_type) +    async def _receive_json(self, message_type: str, timeout: int = 5) -> Any: +        try: +            return await asyncio.wait_for(self.sub_queue.get(message_type), timeout=timeout) +        except asyncio.TimeoutError: +            raise Exception( +                "IDE Protocol _receive_json timed out after 5 seconds")      async def _send_and_receive_json(self, data: Any, resp_model: Type[T], message_type: str) -> T:          await self._send_json(message_type, data) | 
