On Wed, Mar 19, 2008 at 10:09 AM, Stefan Ring <[EMAIL PROTECTED]> wrote:
> Adam Olsen <rhamph <at> gmail.com> writes:
>
>  > Can you try with a call to sched_yield(), rather than nanosleep()?  It
>  > should have the same benefit but without as much performance hit.
>  >
>  > If it works, but is still too much hit, try tuning the checkinterval
>  > to see if you can find an acceptable throughput/responsiveness
>  > balance.
>  >
>
>  I tried that, and it had no effect whatsoever. I suppose it would make an 
> effect
>  on a single CPU or an otherwise heavily loaded SMP system but that's not the
>  secnario we care about.

So you've got a lightly loaded SMP system?  Multiple threads all
blocked on the GIL, multiple CPUs to run them, but only one CPU is
active?  I that case I can imagine how sched_yield() might finish
before the other CPUs wake up a thread.

A FIFO scheduler would be the right thing here, but it's only a short
term solution.  Care for a long term solution? ;)

http://code.google.com/p/python-safethread/

-- 
Adam Olsen, aka Rhamphoryncus
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to