[Python-Dev] Removing the GIL (Me, not you!)

Hrvoje Nikšić hrvoje.niksic at avl.com
Thu Sep 13 17:13:11 CEST 2007


On Thu, 2007-09-13 at 13:15 +0200, "Martin v. Löwis" wrote:
> > To put it another way, would it actually matter if the reference
> > counts for such objects became hopelessly wrong due to non-atomic
> > adjustments?
> 
> If they drop to zero (which may happen due to non-atomic adjustments),
> Python will try to release the static memory, which will crash the
> malloc implementation.

More precisely, Python will call the deallocator appropriate for the
object type.  If that deallocator does nothing, the object continues to
live.  Such objects could also start out with a refcount of sys.maxint
or so to ensure that calls to the no-op deallocator are unlikely.

The part I don't understand is how Python would know which objects are
global/static.  Testing for such a thing sounds like something that
would be slower than atomic incref/decref.




More information about the Python-Dev mailing list