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:13:22 +0100 |
commit | 06d76645900b2a7db8f88a0ad3bf4ae66cef52f1 (patch) | |
tree | 5e0f585113a974e1207374ae23f44c0b79db63d3 /bitbake/lib | |
parent | 5fba9d8c6c9982f59b0285fe17e91e162e25d495 (diff) | |
download | poky-06d76645900b2a7db8f88a0ad3bf4ae66cef52f1.tar.gz |
bitbake: 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.
(Bitbake rev: 5709efc2ff1e36529bd28f49cd093ccfa7abff7f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib')
-rw-r--r-- | bitbake/lib/prserv/db.py | 4 | ||||
-rw-r--r-- | bitbake/lib/prserv/serv.py | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/bitbake/lib/prserv/db.py b/bitbake/lib/prserv/db.py index 9d8e9db9f2..7d74327c55 100644 --- a/bitbake/lib/prserv/db.py +++ b/bitbake/lib/prserv/db.py | |||
@@ -14,7 +14,7 @@ sqlversion = sqlite3.sqlite_version_info | |||
14 | if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3): | 14 | if sqlversion[0] < 3 or (sqlversion[0] == 3 and sqlversion[1] < 3): |
15 | raise Exception("sqlite3 version 3.3.0 or later is required.") | 15 | raise Exception("sqlite3 version 3.3.0 or later is required.") |
16 | 16 | ||
17 | class PRTable(): | 17 | class PRTable(object): |
18 | def __init__(self, conn, table, nohist): | 18 | def __init__(self, conn, table, nohist): |
19 | self.conn = conn | 19 | self.conn = conn |
20 | self.nohist = nohist | 20 | self.nohist = nohist |
@@ -223,7 +223,7 @@ class PRData(object): | |||
223 | except OSError as e: | 223 | except OSError as e: |
224 | if e.errno != errno.EEXIST: | 224 | if e.errno != errno.EEXIST: |
225 | raise e | 225 | raise e |
226 | self.connection=sqlite3.connect(self.filename, isolation_level="DEFERRED") | 226 | self.connection=sqlite3.connect(self.filename, isolation_level="DEFERRED", check_same_thread = False) |
227 | self.connection.row_factory=sqlite3.Row | 227 | self.connection.row_factory=sqlite3.Row |
228 | self._tables={} | 228 | self._tables={} |
229 | 229 | ||
diff --git a/bitbake/lib/prserv/serv.py b/bitbake/lib/prserv/serv.py index 6d0c7188ee..d6f3f44b04 100644 --- a/bitbake/lib/prserv/serv.py +++ b/bitbake/lib/prserv/serv.py | |||
@@ -165,7 +165,7 @@ class PRServer(SimpleXMLRPCServer): | |||
165 | self.delpid() | 165 | self.delpid() |
166 | os._exit(0) | 166 | os._exit(0) |
167 | 167 | ||
168 | class PRServSingleton(): | 168 | class PRServSingleton(object): |
169 | def __init__(self, dbfile, logfile, interface): | 169 | def __init__(self, dbfile, logfile, interface): |
170 | self.dbfile = dbfile | 170 | self.dbfile = dbfile |
171 | self.logfile = logfile | 171 | self.logfile = logfile |
@@ -182,7 +182,7 @@ class PRServSingleton(): | |||
182 | def getinfo(self): | 182 | def getinfo(self): |
183 | return (self.host, self.port) | 183 | return (self.host, self.port) |
184 | 184 | ||
185 | class PRServerConnection(): | 185 | class PRServerConnection(object): |
186 | def __init__(self, host, port): | 186 | def __init__(self, host, port): |
187 | if is_local_special(host, port): | 187 | if is_local_special(host, port): |
188 | host, port = singleton.getinfo() | 188 | host, port = singleton.getinfo() |