[Python-ideas] Ideas towards GIL removal (original) (raw)
Jan Kanis jan.kanis at phil.uu.nl
Fri Apr 13 18:51:18 CEST 2007
- Previous message: [Python-ideas] Ideas towards GIL removal
- Next message: [Python-ideas] Ideas towards GIL removal
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Fri, 13 Apr 2007 08:51:11 +0200, Talin <talin at acm.org> wrote:
Now, all that being said, even if such a GC library were to exist, that is a long way from removal of the GIL, although it is a necessary step. For example, take the case of a dictionary in which more than one thread is inserting values. Clearly, that will require a lock or some other mechanism to prevent corruption of the hash table as it is updated. I think we want to avoid the Java situation where every object has its own lock. Instead, we'd have to require the user to provide a lock around that insertion operation. But what about dictionaries that the user isn't aware of, such as class methods and module contents? In a world without a GIL, what kind of steps need to be taken to insure that shared data structures can be updated without creating chaos?
In the case of hashtables, a nonblocking variant could perhaps be an
option. There was a nice article on reddit some time ago:
http://blogs.azulsystems.com/cliff/2007/03/a_nonblocking_h.html , the guy
claims that it's competitive in speed to non-lock protected (so thread
unsafe) implementations. Nonblocking algorithms don't exist for all data
structures, but perhaps they exist for most ones that are used in the
python interpreter?
- Jan
- Previous message: [Python-ideas] Ideas towards GIL removal
- Next message: [Python-ideas] Ideas towards GIL removal
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]