On Tue, 09 Sep 2008 12:57:38 +0530, Chaitanya Gupta mail@chaitanyagupta.com wrote:
<quote> In some senses, his statement is correct, but not because of any "big lock". The effect is seen on "virtual" or "green" threads implementations like the OS X/Linux versions you are discussing in that thread. Note that our virtual threads implementation uses only one thread, and so if you have another real thread (spawned by pthread_create or similar) the lisp will have no effect on that thread. If you spawn the thread through lisp, via e.g. process-run-function, then it is not really a "thread", because it is virtual, and has to wait for the (virtual) scheduler to schedule it. Other real threads will run as the system sees fit.
On Windows, we have an implementation called os-threads which ties the thread spawned by process-run-function directly to a real thread, and so it acts precisely as you implied it would in the cxml-devel mail thread.
</quote>
Call it "big lock" or not, for me the actual question is whether two Lisp threads in the same imagine can actually run /at the same time/ if I have a multi-core or multi-processor system. My understanding is that they can't.
Edi.