On Fri, Feb 17, 2012 at 8:53 AM, Matthew Mondor <mm_li...@pulsar-zone.net>wrote:

> I see that this is similar to an adaptive spinlock, that'll spin, and
> then sleep if the lock cannot be obtained when in blocking mode.
> However, it naturally cannot magically awaken immediately when a lock
> is freed, but wait until the sleep operation returned, so it
> busy-sleeps.
>

It is the approach that SBCL follows. I considered the possibility of doing
something more fancy, but there are some problems associated to it: a
waiting list will cons; it has also associated some synchronization
problems; awaking a thread implies an interruptible wait mechanism or a
wait with a timeout -- tricky in Windows, possible with nanosleep() +
interrupts, very difficult otherwise.


> Unfortunately my testing was quite summary as I couldn't build SLIME
> anymore under the new ECL, it errors about the lack of condition
> variables.
>

That is the second step. Condition variables need a wait queue, which as I
said above, these mutexes do not have. We also cannot reuse pthreads'
conditions variables because they rely on pthreads' mutexes.


> As for stability testing, I could stress test the HTTPd using various
> ab runs, but still experienced some instability when doing 5000+
> connections runs at 16+ concurrency (ab -c16 -n5000).  A stack overflow
> error eventually was produced at the REPL and I could not recover
> gracefully without restarting ECL.  The previous runs using -n1000 were
> successful, but I didn't really run more than a douzen so far.


Is there a way I can reproduce those problems here? I am puzzled by the
stack overflow. Why would it happen? I definitely need to gdb that.

Juanjo

-- 
Instituto de FĂ­sica Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list

Reply via email to