30
30
from guidellm .scheduler .result import (
31
31
MPQueues ,
32
32
SchedulerRequestInfo ,
33
+ WorkerProcessRequestTime ,
33
34
WorkerProcessResult ,
34
35
)
35
36
from guidellm .scheduler .types import RequestT , ResponseT
@@ -107,6 +108,11 @@ async def resolve(
107
108
"""
108
109
...
109
110
111
+ async def get_request_time (
112
+ self , times_queue : Queue [WorkerProcessRequestTime ]
113
+ ) -> WorkerProcessRequestTime :
114
+ return await asyncio .to_thread (times_queue .get ) # type: ignore[attr-defined]
115
+
110
116
async def send_result (
111
117
self ,
112
118
results_queue : Queue [WorkerProcessResult [RequestT , ResponseT ]],
@@ -170,7 +176,7 @@ async def resolve_scheduler_request(
170
176
asyncio .create_task (self .send_result (results_queue , result ))
171
177
172
178
request_session .push_response (response )
173
- return request
179
+ return request_session
174
180
175
181
def process_loop_asynchronous (
176
182
self ,
@@ -194,7 +200,7 @@ async def _process_runner():
194
200
else queues .requests .get_nowait ()
195
201
)
196
202
dequeued_time = time .time ()
197
- request_times = queues .times . get ( )
203
+ request_times = await self . get_request_time ( queues .times )
198
204
except (QueueEmpty , IndexError ):
199
205
# Requeue the session if we don't have a next time yet
200
206
if request_session is not None :
@@ -215,7 +221,7 @@ async def wait_then_requeue(
215
221
# Release the lock with the session on top of the stack
216
222
lock .release ()
217
223
218
- async def _request_callback (
224
+ def _request_callback (
219
225
session_future : asyncio .Future [RequestSession [RequestT , ResponseT ]],
220
226
):
221
227
# If we are prioritizing sessions, hold
@@ -224,7 +230,7 @@ async def _request_callback(
224
230
if not prioritize_sessions :
225
231
lock .release ()
226
232
227
- session = await session_future
233
+ session = session_future . result ()
228
234
if not session .complete :
229
235
asyncio .create_task (wait_then_requeue (session ))
230
236
elif prioritize_sessions :
0 commit comments