> >> > >> 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. _______________________________________________ fpc-devel maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-devel
