fix py lock

This commit is contained in:
josc146 2023-05-21 13:46:54 +08:00
parent c02ce51d86
commit c3084a3290

View File

@ -51,7 +51,7 @@ async def completions(body: CompletionBody, request: Request):
while completion_lock.locked():
await asyncio.sleep(0.1)
else:
with completion_lock:
completion_lock.acquire()
set_rwkv_config(model, global_var.get(global_var.Model_Config))
set_rwkv_config(model, body)
if body.stream:
@ -73,6 +73,9 @@ async def completions(body: CompletionBody, request: Request):
],
}
)
if await request.is_disconnected():
completion_lock.release()
return
yield json.dumps(
{
"response": response,
@ -92,7 +95,11 @@ async def completions(body: CompletionBody, request: Request):
for response, delta in rwkv_generate(
model, completion_text, stop="\n\nBob"
):
pass
if await request.is_disconnected():
break
if await request.is_disconnected():
completion_lock.release()
return
yield {
"response": response,
"model": "rwkv",
@ -108,6 +115,7 @@ async def completions(body: CompletionBody, request: Request):
],
}
# torch_gc()
completion_lock.release()
if body.stream:
return EventSourceResponse(eval_rwkv())