[fpc-devel]promised tthread patch

Peter Vreman peter at freepascal.org
Tue Nov 18 11:17:48 CET 2003


> [ Charset ISO-8859-1 unsupported, converting... ]
>> > .... under FreeBSD it fails. Probably due to the pipe trick
>> >
>> > I'm still investigating.
>>
>> 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.






More information about the fpc-devel mailing list