aboutsummaryrefslogtreecommitdiffstats
path: root/lib/prserv
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-28 16:06:10 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-08-29 00:12:29 +0100
commit5709efc2ff1e36529bd28f49cd093ccfa7abff7f (patch)
treee99a0a42cab270b2476366271aaff8447c3ffd25 /lib/prserv
parent85fed8acc3af3e15bf119db2f51c486a9de3646b (diff)
downloadbitbake-5709efc2ff1e36529bd28f49cd093ccfa7abff7f.tar.gz
prserv/db: Threading fixes
Enabling threading for the PRServer causes a number of issues. Firstly is the obtuse error: sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type which is due to the class not being derived from object. See: http://docs.python.org/2/library/sqlite3.html#registering-an-adapter-callable Secondly, we want to enable multithreadded access to the database so we do this when we open it. This opens the way up to multithreading the PR server. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/prserv')
-rw-r--r--lib/prserv/db.py4
-rw-r--r--lib/prserv/serv.py4
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/prserv/db.py b/lib/prserv/db.py
index 9d8e9db9f..7d74327c5 100644
--- a/lib/prserv/db.py
+++ b/lib/prserv/db.py
@@ -14,7 +14,7 @@ sqlversion = sqlite3.sqlite_version_info
if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3):
raise Exception("sqlite3 version 3.3.0 or later is required.")
-class PRTable():
+class PRTable(object):
def __init__(self, conn, table, nohist):
self.conn = conn
self.nohist = nohist
@@ -223,7 +223,7 @@ class PRData(object):
except OSError as e:
if e.errno != errno.EEXIST:
raise e
- self.connection=sqlite3.connect(self.filename, isolation_level="DEFERRED")
+ self.connection=sqlite3.connect(self.filename, isolation_level="DEFERRED", check_same_thread = False)
self.connection.row_factory=sqlite3.Row
self._tables={}
diff --git a/lib/prserv/serv.py b/lib/prserv/serv.py
index 6d0c7188e..d6f3f44b0 100644
--- a/lib/prserv/serv.py
+++ b/lib/prserv/serv.py
@@ -165,7 +165,7 @@ class PRServer(SimpleXMLRPCServer):
self.delpid()
os._exit(0)
-class PRServSingleton():
+class PRServSingleton(object):
def __init__(self, dbfile, logfile, interface):
self.dbfile = dbfile
self.logfile = logfile
@@ -182,7 +182,7 @@ class PRServSingleton():
def getinfo(self):
return (self.host, self.port)
-class PRServerConnection():
+class PRServerConnection(object):
def __init__(self, host, port):
if is_local_special(host, port):
host, port = singleton.getinfo()