Removing the PyPy global lock
Removing the PyPy global lock
The PyPy Status Blog has an
article describing a plan to remove the global interpreter lock and
switch to an transactional memory scheme. "During a transaction, we
don't actually change the global memory at all. Instead, we use the
thread-local transaction object. We store in it which objects we read from,
which objects we write to, and what values we write. It is only when the
transaction reaches its end that we attempt to 'commit' it. Committing
might fail if other commits have occurred in between, creating
inconsistencies; in that case, the transaction aborts and must restart from
the beginning.
"