Netscape: 'Interrupted system call'
assar@stacken.kth.se
assar at stacken.kth.se
Tue Mar 2 00:22:22 CET 1999
Robert Watson <robert at cyrus.watson.org> writes:
> >From this behavior, I'm guessing that their threading package uses SIGALRM
> (14) for preemption or timeouts of some kind, and that they do not expect
> to receive it during their open(). However, I believe this is a Netscape
> issue technically, as FreeBSD open(2) does state:
>
> [EINTR] The open() operation was interrupted by a signal.
Yeah, I agree and it's me worthwhile being able to timeout an open()
so I don't know what we could do to workaround this.
You can try the following patch which should make it not happen (but
then again, it will not get interrupted by SIGALRM).
/assar
Index: xfs/bsd/xfs_dev-common.c
===================================================================
RCS file: /usr/local/cvsroot/arla/xfs/bsd/xfs_dev-common.c,v
retrieving revision 1.21
diff -u -w -u -w -r1.21 xfs_dev-common.c
--- xfs_dev-common.c 1999/02/27 19:11:20 1.21
+++ xfs_dev-common.c 1999/03/01 23:16:35
@@ -349,12 +349,15 @@
oldsigmask = xfs_curproc()->p_sigmask;
#ifdef __sigaddset
__sigaddset(&xfs_curproc()->p_sigmask, SIGIO);
+ __sigaddset(&xfs_curproc()->p_sigmask, SIGALRM);
#else
xfs_curproc()->p_sigmask |= sigmask(SIGIO);
+ xfs_curproc()->p_sigmask |= sigmask(SIGALRM);
#endif /* __sigaddset */
#elif defined(HAVE_STRUCT_PROC_P_SIGWAITMASK)
oldsigmask = xfs_curproc()->p_sigwaitmask;
sigaddset(&xfs_curproc()->p_sigwaitmask, SIGIO);
+ sigaddset(&xfs_curproc()->p_sigwaitmask, SIGALRM);
#endif
/*
* We have to check if we have a receiver here too because the
More information about the Arla-drinkers
mailing list