[cxml-devel] CXML performance

Chaitanya Gupta mail at chaitanyagupta.com
Tue Sep 9 07:27:38 UTC 2008


Edi Weitz wrote:
>
> Unless they've changed this recently, AllegroCL (like LispWorks
> pre-6.x) has a big lock which blocks all other threads no matter
> whether they're Lisp or foreign threads.
>
>   

 From Franz:

<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>

Chaitanya




More information about the cxml-devel mailing list