Add a threading.Lock() around cursor.execute(...) in Database.py

This commit is contained in:
jesopo 2018-11-11 12:40:24 +00:00
parent 2816fe67bb
commit c84205ed9b

View file

@ -274,6 +274,7 @@ class Database(object):
check_same_thread=False, isolation_level=None) check_same_thread=False, isolation_level=None)
self.database.execute("PRAGMA foreign_keys = ON") self.database.execute("PRAGMA foreign_keys = ON")
self._cursor = None self._cursor = None
self._lock = threading.Lock()
self.make_servers_table() self.make_servers_table()
self.make_channels_table() self.make_channels_table()
@ -307,8 +308,8 @@ class Database(object):
start = time.monotonic() start = time.monotonic()
cursor = self.cursor() cursor = self.cursor()
cursor.execute(query, params) with self._lock:
value = fetch_func(cursor) cursor.execute(query, params)
end = time.monotonic() end = time.monotonic()
total_milliseconds = (end - start) * 1000 total_milliseconds = (end - start) * 1000