On Mon, Jul 23, 2001, Shawn Wagner wrote:

> [...]
> > After looking at pth_sched.c, here's what I think is happening:
> > 
> > All threads are sitting in the wait queue waiting for various events to
> > happen, and the ready queue is empty. When pth_scheduler() tries to get the
> > next ready thread to run, there aren't any, and instead of checking the wait
> > queue for events that have occurred again (By calling
> > pth_sched_eventmanager()), it aborts. I'm going to try changing that bit of
> > the scheduler and see if it helps.
> 
> With some more debugging, it looks like using hard syscall wrappers is the
> problem. Turning that off makes everything work for me, at least (Linux
> 2.2). With them, pth_sched_eventmanager() isn't always detecting fd i/o with
> a timeout correctly and was exiting early instead of waiting for an event to
> happen. This is annoying, since one of the threads does gethostbyaddr()'s,
> which I didn't want possibly blocking the whole server. But at least it's
> not aborting now.

Hhmm... so you think it is not a semantical bug in the scheduler, but
instead a side-effect of some syscalls. What happens if you use the soft
syscall wrappers? Do you have a _SMALL_ test application at hand which I
can use to deterministically reproduce the problem?

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com
______________________________________________________________________
GNU Portable Threads (Pth)            http://www.gnu.org/software/pth/
User Support Mailing List                            [EMAIL PROTECTED]
Automated List Manager (Majordomo)           [EMAIL PROTECTED]

Reply via email to