On Wed, Mar 19, 2008 at 10:09 AM, Stefan Ring <s.r at visotech.at> 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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4