diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-08-28 16:06:10 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-08-29 00:12:29 +0100 |
commit | 5709efc2ff1e36529bd28f49cd093ccfa7abff7f (patch) | |
tree | e99a0a42cab270b2476366271aaff8447c3ffd25 /lib/prserv | |
parent | 85fed8acc3af3e15bf119db2f51c486a9de3646b (diff) | |
download | bitbake-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.py | 4 | ||||
-rw-r--r-- | lib/prserv/serv.py | 4 |
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() |