Date: Fri, 8 Sep 2000 11:59:09 -0700 From: Alfred Perlstein <bright@wintelcom.net> To: smp@freebsd.org Subject: SMPng: catching signals and mutexes. Message-ID: <20000908115909.F12231@fw.wintelcom.net>
index | next in thread | raw e-mail
There seems to be no way to specify that a signal is to interrupt
a wait on a mutex, I'm wondering if we should make it possible to
do so.
code in question:
sb_lock() uipc_socket2.c line 313 of 1012:
while (sb->sb_flags & SB_LOCK) {
sb->sb_flags |= SB_WANT;
error = tsleep((caddr_t)&sb->sb_flags,
(sb->sb_flags & SB_NOINTR) ? PSOCK : PSOCK|PCATCH,
"sblock", 0);
if (error)
return (error);
}
sb->sb_flags |= SB_LOCK;
return (0);
has to made into:
int
sb_lock(sb)
register struct sockbuf *sb;
{
int error;
while (mtx_try_enter(sb->sb_mtx, MTX_DEF) == 0) {
error = tsleep((caddr_t)&sb->sb_flags,
(sb->sb_flags & SB_NOINTR) ? PSOCK : PSOCK|PCATCH,
"sblock", 0);
if (error)
return (error);
}
return (0);
}
I'm not sure I like this at all, shouldn't there be an
mtx_enter with some option to return an error if a signal
arrives?
Thanks,
--
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000908115909.F12231>
