This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author neologix
Recipients greg.ath, neologix, pitrou, vstinner
Date 2011-06-25.23:33:18
SpamBayes Score 1.085553e-07
Marked as misclassified No
Message-id <BANLkTimXSSB7fEg2gS5FgDamSh71ZS+SbA@mail.gmail.com>
In-reply-to <1309041105.1.0.332769384161.issue12352@psf.upfronthosting.co.za>
Content
[...]
> def free(self, block):
>  if self._lock.acquire(False):
>     self._exec_pending_free()
>     self._free(block)
>  else:
>     # malloc holds the lock
>     self._pending_free.append(block)
>

_pending_free uses a lock internally to make it thread-safe, so I
think this will have exactly the same problem (the trylock can fail in
case of contention or free() from multiple threads, thus we can't be
sure that the else clause is executed on behalf of the garbage
collector and it won't run while we're adding the block to
_pending_free).

Anyway, this seems complicated and error-prone, disabling the gc seems
the most straightforward way to handle that.
History
Date User Action Args
2011-06-25 23:33:18neologixsetrecipients: + neologix, pitrou, vstinner, greg.ath
2011-06-25 23:33:18neologixlinkissue12352 messages
2011-06-25 23:33:18neologixcreate