1- we should probably extend pthread_mutexattr_t with a field to create a
2  single linked list of all instances.  This requires changing the
3  pthread_mutexattr_* functions.
4
5
6- a new attribute for mutexes: number of times we spin before calling
7sys_futex
8
9- for adaptive mutexes: when releasing, determine whether somebody spins.
10If yes, for a short time release lock.  If someone else locks no wakeup
11syscall needed.
12
13
14
15- test with threaded process terminating and semadj (?) being applied
16  only after all threads are gone
17
18
19
20- semaphore changes:
21
22  - sem_post should only wake one thread and only when the state of
23    the semaphore changed from 0 to 1
24
25    this also requires that sem_wait and sem_timedwait don't drop the
26    post if they get canceled.
27
28  - possibly add counter field.  This requires reviving the
29    differences between old and new semaphose funtions.  The old ones
30    stay as they are now.  The new once can use an additional field
31    wich is the counter for the number of waiters
32