[Python-Dev] PyWeakref_GetObject() borrows its reference from... whom? (original) (raw)
Chris Angelico rosuav at gmail.com
Mon Oct 10 18:58:38 EDT 2016
- Previous message (by thread): [Python-Dev] PyWeakref_GetObject() borrows its reference from... whom?
- Next message (by thread): [Python-Dev] PyWeakref_GetObject() borrows its reference from... whom?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Oct 11, 2016 at 9:52 AM, MRAB <python at mrabarnett.plus.com> wrote:
Also, I don't know when it would ever be safe to release the "memory deallocation lock". Just because it's safe for your thread doesn't mean it's safe for another thread. And if you do it on a thread-by-thread basis, in the above example it might be safe from thread B's perspective to release its "memory deallocation lock", but as illustrated that can have an effect on thread A.
The deallocation lock could be a counter. Doomed objects would be collectable when it's zero.
Yeah, which is why I described it as a "guard". As long as you have atomic increment/decrement (ie if two threads simultaneously try to increment it, it WILL go up by two), it should be fine. Well, that part should, anyway.
ChrisA
- Previous message (by thread): [Python-Dev] PyWeakref_GetObject() borrows its reference from... whom?
- Next message (by thread): [Python-Dev] PyWeakref_GetObject() borrows its reference from... whom?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]