Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Sep 2000 13:08:41 -0500
From:      Jonathan Lemon <jlemon@flugsvamp.com>
To:        Alfred Perlstein <bright@wintelcom.net>
Cc:        arch@FreeBSD.ORG, cp@FreeBSD.ORG, bmilekic@FreeBSD.ORG
Subject:   Re: need advice, fsetown annoyances and mpsafeness.
Message-ID:  <20000924130841.A2487@prism.flugsvamp.com>
In-Reply-To: <20000924103303.M9141@fw.wintelcom.net>
References:  <20000924103303.M9141@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Sep 24, 2000 at 10:33:03AM -0700, Alfred Perlstein wrote:
> 2) removing the burden of sigio destruction from the proc/pgrp destruction
>    routines, instead the proc can just walk the sigios and set a
>    flag is set such that the sigio is not to be delivered, it is
>    then entirely up to the object (socket/tty) to free() the sigio.
> 
>    the sigio linked list manipulation can be hinged off the process
>    mutex we will need to add to the proc and pgrp structures.
> 
>    if a sigio is going to be changed you must aquire the proc/pgrp lock
>    of the process/group you are removing the structure from before
>    doing the unlinking and change otherwise you race against process
>    exit.
> 
> Option 2 seems a lot clearer to me and it also seems to address all
> the problems here without any hackish like solution
> 
> I'm going to be investigating the BSD/os way of handling this, but
> it seems that they don't take into account for pid wraparound at
> a glance.
> 
> Questions?  Comments?

kqueue has a similar problem, and resolves this in a similar fashion
as above.  A knote can be attached to a process, which may exit; in
this case, the process just walks down the list and sets a flag, the
structure is then destroyed when kevent gets around to examining it.
--
Jonathan


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?20000924130841.A2487>