[fpc-devel]promised tthread patch

Marco van de Voort marcov at stack.nl
Tue Nov 18 11:30:27 CET 2003


> >>
> >> Weird, the pipe trick should be very portable, unless there are signals
> >> involved.
> >> Try changing the
> >> fpread(...) to
> >>
> >> // pseudo code:
> >> repeat
> >> if fpread(...) = -1 then
> >> not_signalled := errno = EINTR;
> >> else
> >> not_signalled := true;
> >> until not_signalled;
> >>
> >> and hope the loop doesn't get tight. but fpread should block in any case
> >
> > It's the assumptio that fpread returns EINTR. That is a a linuxism I
> > guess.
> >
> > It returns ESysEAGAIN.
> >
> > I'm currently patching all these occurances when pipe related.
> 
> EAGAIN is only used for Non-blocking IO. The provided EINTR loop is
> correct for Linux,Solaris,Tru64 and UnixWare.

The FreeBSD read(2) manpage also says that it is for nonblocking.

I'll see what Stevens says about this tonight.






More information about the fpc-devel mailing list