
Skip Montanaro wrote:
Jim> I like the list pop method because it provides a way to use lists Jim> as thread safe queues and stacks (since append and pop are Jim> protected by the global interpreter lock).
The global interpreter lock is a property of the current implementation of Python, not of the language itself. At one point in the past Greg Stein created a set of patches that eliminated the lock. While it's perhaps convenient to use now, it may not always exist. I'm not so sure that it should be used as a motivator for changes to libraries in the standard distribution.
If the global interpreter lock goes away, then some other locking mechanism will be used to make built-in object operations atomic. For example, in Greg's changes, each list was protected by a list lock. The key is that pop combines checking for an empty list and removing an element into a single operation. As long as the operations append and pop are atomic, then lists can be used as thread-safe stacks and queues. The benefit of the proposal does not really depend on the global interpreter lock. It only depends on list operations being atomic. Jim -- Jim Fulton mailto:jim@digicool.com Python Powered! Technical Director (888) 344-4332 http://www.python.org Digital Creations http://www.digicool.com http://www.zope.org Under US Code Title 47, Sec.227(b)(1)(C), Sec.227(a)(2)(B) This email address may not be added to any commercial mail list with out my permission. Violation of my privacy with advertising or SPAM will result in a suit for a MINIMUM of $500 damages/incident, $1500 for repeats.