Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Mar 2002 16:29:22 -0800
From:      Alfred Perlstein <bright@mu.org>
To:        Julian Elischer <julian@elischer.org>
Cc:        arch@freebsd.org
Subject:   Re: Contemplating THIS change to signals. (fwd)
Message-ID:  <20020308002922.GO26621@elvis.mu.org>
In-Reply-To: <20020308002452.GN26621@elvis.mu.org>
References:  <Pine.BSF.4.21.0203071342160.37321-100000@InterJet.elischer.org> <20020308002452.GN26621@elvis.mu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
* Alfred Perlstein <bright@mu.org> [020307 16:25] wrote:
> * Julian Elischer <julian@elischer.org> [020307 14:00] wrote:
> >
> > My suggestion is to remove teh code in issignal() that perfoms the
> > blocking actions and create a separate function that does that action.
> > I would then call that function from userret() immediatly after the call
> > to issignal(). The result would be that
> > suspended processes would still not reach userland, but processes would
> > not have to option of suspending indefinitly at sleep().
>
> You are correct, you can _not_ allow arbitrary kernel threads to
> block indefinetly while potentially holding higher level locks.
>
> Please proceed with your planned work, it seems like the right
> thing to do.

Both Poul-Henning Kamp and Nate Williams bring up the important
point of potentially long running syscalls, there are two
ways you might consider fixing this:

1) add an additional flag to msleep to allow suspension during sleep.
2) restart the syscall at the userland boundry.

--
-Alfred Perlstein [alfred@freebsd.org]

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020308002922.GO26621>