Skip to content

Commit 3caaa79

Browse files
committed
fix error handling from writer thread back to calling thread
1 parent ac81e48 commit 3caaa79

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

llms/db.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from queue import Empty, Queue
66
from threading import Event, Thread
77

8-
POOL = os.getenv("LLMS_POOL", "0") == "1"
8+
POOL = os.getenv("LLMS_POOL", "1") == "1"
99

1010

1111
def create_reader_connection(db_path):
@@ -292,17 +292,20 @@ def insert(self, table, columns, info, callback=None):
292292
async def insert_async(self, table, columns, info):
293293
event = threading.Event()
294294

295-
ret = [None]
295+
ret = [None, None]
296296

297297
def cb(lastrowid, rowcount, error=None):
298298
nonlocal ret
299299
if error:
300-
raise error
301-
ret[0] = lastrowid
300+
ret[1] = error
301+
else:
302+
ret[0] = lastrowid
302303
event.set()
303304

304305
self.insert(table, columns, info, cb)
305306
event.wait()
307+
if ret[1]:
308+
raise ret[1]
306309
return ret[0]
307310

308311
def update(self, table, columns, info, callback=None):
@@ -326,17 +329,20 @@ def update(self, table, columns, info, callback=None):
326329
async def update_async(self, table, columns, info):
327330
event = threading.Event()
328331

329-
ret = [None]
332+
ret = [None, None]
330333

331334
def cb(lastrowid, rowcount, error=None):
332335
nonlocal ret
333336
if error:
334-
raise error
335-
ret[0] = rowcount
337+
ret[1] = error
338+
else:
339+
ret[0] = rowcount
336340
event.set()
337341

338342
self.update(table, columns, info, cb)
339343
event.wait()
344+
if ret[1]:
345+
raise ret[1]
340346
return ret[0]
341347

342348
def close(self):

0 commit comments

Comments
 (0)