implement robust mutexes
some of this code should be cleaned up, e.g. using macros for some of the bit flags, masks, etc. nonetheless, the code is believed to be working and correct at this point.
This commit is contained in:
parent
18c7ea8055
commit
047e434ef5
10 changed files with 84 additions and 10 deletions
10
src/thread/pthread_mutex_consistent.c
Normal file
10
src/thread/pthread_mutex_consistent.c
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#include "pthread_impl.h"
|
||||
|
||||
int pthread_mutex_consistent(pthread_mutex_t *m)
|
||||
{
|
||||
if (m->_m_type < 8) return EINVAL;
|
||||
if ((m->_m_lock & 0x3fffffff) != pthread_self()->tid)
|
||||
return EPERM;
|
||||
m->_m_type -= 8;
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue