[Python-Dev] Software Transactional Memory for Python (original) (raw)
Armin Rigo arigo at tunes.org
Tue Aug 30 22:02:09 CEST 2011
- Previous message: [Python-Dev] Software Transactional Memory for Python
- Next message: [Python-Dev] Software Transactional Memory for Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Re-hi,
2011/8/29 Armin Rigo <arigo at tunes.org>:
The problem is that many locks are actually acquired implicitely. For example,
I found a solution not involving any change in CPython, and updated the patch. The solution is to say that a "with atomic" block doesn't completely prevent other threads from re-acquiring the GIL, but only prevents them from proceeding to the following bytecode. So if another thread is currently suspended in a place that releases the GIL for other reasons, then this other thread can still be switched to as normal, and continue running until the end of the current bytecode. I think it's sane enough for the original purpose, and avoids most deadlock cases.
A bientôt,
Armin.
- Previous message: [Python-Dev] Software Transactional Memory for Python
- Next message: [Python-Dev] Software Transactional Memory for Python
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]