On 2/15/18 9:35 AM, Chris Angelico wrote:
On Thu, Feb 15, 2018 at 2:40 PM, Oleg Korsak
<kamikaze.is.waiting....@gmail.com> wrote:
Hi. While hearing about GIL every time... is there any real reason why CAS
doesn't help to solve this problem?

https://en.wikipedia.org/wiki/Compare-and-swap
Because the GIL is not a problem. It's a feature. Before you ask about
solutions, you need to clarify what you are calling a problem :)


Let's not overstate the case.  The GIL is not a feature, it's an effective solution to a problem.  The Python interpreter has data that is shared among threads, including the state of the interpreter, and all of the reference counts of all of the Python objects.  When that data is modified, it must be done in a thread-safe way.  The GIL is a simple and effective solution to doing that correctly.

Oleg, CAS is a processor primitive that can be used to implement synchronization tools, including locks like the GIL.  You can't replace the GIL with CAS, since they are not equivalent.  You'll need to flesh out your idea about how CAS can help solve the "mutating shared interpreter state" problem that the GIL solves.

--Ned.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to