On Tue, 24 Sep 2002, Terry Lambert wrote:
> Andriy Gapon wrote:
> > I have noticed that it is not uncommon for a multithreaded program that
> > invokes a lot of system calls to get EINTR from a syscall even if no
> > non-default signal handling is installed and no 'real' signals are
> > received. Looks like some syscalls get interrupted by the scheduling
> > signal. In my understanding, this should be something hidden from a user.
> > Is there any way to restart syscalls interrupted by the scheduling signal
> > without returning a libc_r call ?
>
> Set SA_RESTART in the sa_flags of the sigaction for the scheduling
> signal. Use "man sigaction" for details.
Yes, for application installed signal handlers.
Try this for library installed signal handlers (patch
to -current).
http://people.freebsd.org/~deischen/libc_r.diffs
--
Dan Eischen
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message