A mutex for inter-process ;-)

Julian Elischer julian at elischer.org
Mon Mar 30 18:05:33 PDT 2009


Randall Stewart wrote:
> 

>>
>> I think davidxu@ deischen@ and julian@?
>>
>> BTW.  How do you handle with one process exit (abnormally) without
>> releasing the mutex?  Just curious :)
> 
> I have a couple of ways of dealing with this..
> 

> 1) Of course the initialization routine calls atexit() to get a
> "cleanup  handler" in place.

this is not really sufficient for a system supplied service.


> 2) Often times, of course, this can fail e.g. you get a SIGSEGV..
> or some such. When you attach the memory, an audit is done. The
> audit will validate that the pid is still alive and has the
> particular tid in it. Of course this is not 100% but as long as the
> tid's have not rolled over it should work. The function is also
> public (need to add that and many things to the manual pages ;-D)
> so that onecan call it whenever one wants :-)

TIDs do roll over the last I looked.. (this may have changed)

did you say man page?  goodie..
lets' see it..

There have been a lot of IPC and mutex implementations
but the trick always comes with the requirement
that they handle process/thread death.

David has done some recent work in this space..

> 
> I will ping Julian and the others...
> 


More information about the freebsd-threads mailing list