|
Original |
Translation |
|
2907
|
(Contributed by Tarek Ziade.)
|
|
|
2908
|
The *sqlite3* module has some new features:
|
|
|
2909
|
XXX *enable_load_extension*
|
|
|
2910
|
|
|
|
2911
|
|
2912
|
|
|
|
2913
|
The mechanism for serializing execution of concurrently running Python threads (generally known as the GIL or Global Interpreter Lock) has been rewritten. Among the objectives were more predictable switching intervals and reduced overhead due to lock contention and the number of ensuing system calls. The notion of a "check interval" to allow thread switches has been abandoned and replaced by an absolute duration expressed in seconds. This parameter is tunable through :func:`sys.setswitchinterval()`. It currently defaults to 5 milliseconds.
|
|
|
2914
|
Additional details about the implementation can be read from a `python-dev mailing-list message <http://mail.python.org/pipermail/python-dev/2009-October/093321.html>`_ (however, "priority requests" as exposed in this message have not been kept for inclusion).
|
|
|
2915
|
Recursive locks (created with the :func:`threading.RLock` API) now benefit from a C implementation which makes them as fast as regular locks, and between 10x and 15x faster than their previous pure Python implementation.
|
|
|
2916
|
(Contributed by Antoine Pitrou; :issue:`3001`.)
|
|