Unverified Commit 002d0373 authored by fzyzcjy's avatar fzyzcjy Committed by GitHub
Browse files

Avoid generation gets hanging when user specifies multiple event loops (#5162)


Co-authored-by: default avatarYineng Zhang <me@zhyncs.com>
parent a27825ae
...@@ -267,7 +267,7 @@ class TokenizerManager(TokenizerCommunicatorMixin): ...@@ -267,7 +267,7 @@ class TokenizerManager(TokenizerCommunicatorMixin):
) )
# Request states # Request states
self.no_create_loop = False self._chosen_loop = None
self.rid_to_state: Dict[str, ReqState] = {} self.rid_to_state: Dict[str, ReqState] = {}
self.asyncio_tasks = set() self.asyncio_tasks = set()
...@@ -1170,11 +1170,14 @@ class TokenizerManager(TokenizerCommunicatorMixin): ...@@ -1170,11 +1170,14 @@ class TokenizerManager(TokenizerCommunicatorMixin):
return background_tasks return background_tasks
def auto_create_handle_loop(self): def auto_create_handle_loop(self):
if self.no_create_loop: if self._chosen_loop is not None:
assert (
asyncio.get_event_loop() == self._chosen_loop
), f"Please ensure only one event loop is ever used with SGLang. Previous loop: {self._chosen_loop}, current loop: {asyncio.get_event_loop()}"
return return
self.no_create_loop = True
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()
self._chosen_loop = loop
self.asyncio_tasks.add( self.asyncio_tasks.add(
loop.create_task(print_exception_wrapper(self.handle_loop)) loop.create_task(print_exception_wrapper(self.handle_loop))
) )
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment