WITNESS for pthreads
deischen at freebsd.org
Tue Mar 31 10:33:02 PDT 2009
On Tue, 31 Mar 2009, John Baldwin wrote:
> On Tuesday 31 March 2009 2:50:27 am Daniel Eischen wrote:
>>> Ok, I have poked around at these... all the mutex attributes defined here
>>> do is set the attributes to shared. There does not seem to be any standard
>>> naming mechanism.
>> Naming mechanism for what? Names shouldn't be needed for anything,
>> nor do I think it is desired.
> Off topic: names would be very helpful to port witness to pthreads. The
> thoughts I have had for doing this though would be to add a new _np attribute
> to set the name. I actually would like to write a 'libwitness' that
> basically overrides the various symbols and provides the name_np attribute
> and implement witness in the shared library on top of whatever pthreads
> library is in use. This would also allow it to be portable to other OS's.
> (Well, it could break pshared mutexes, but using the pointer-style types, you
> could have the libwitness allocate its own "mutex" structure which has
> a "real" mutex inside of it along with the name and other per-lock data it
> tracks. It would then forward mutex operations to the real pthreads library
> after performing LOR checks, etc.).
I think this is all overkill when we don't even have proper
pthread synchronization primitives in libthr that can be
used in shared memory. And if we also implement robust mutexes,
then you have additional error-checking.
More information about the freebsd-threads