| - we should probably extend pthread_mutexattr_t with a field to create a | 
 |   single linked list of all instances.  This requires changing the | 
 |   pthread_mutexattr_* functions. | 
 |  | 
 |  | 
 | - a new attribute for mutexes: number of times we spin before calling | 
 | sys_futex | 
 |  | 
 | - for adaptive mutexes: when releasing, determine whether somebody spins. | 
 | If yes, for a short time release lock.  If someone else locks no wakeup | 
 | syscall needed. | 
 |  | 
 |  | 
 |  | 
 | - test with threaded process terminating and semadj (?) being applied | 
 |   only after all threads are gone | 
 |  | 
 |  | 
 |  | 
 | - semaphore changes: | 
 |  | 
 |   - sem_post should only wake one thread and only when the state of | 
 |     the semaphore changed from 0 to 1 | 
 |  | 
 |     this also requires that sem_wait and sem_timedwait don't drop the | 
 |     post if they get canceled. | 
 |  | 
 |   - possibly add counter field.  This requires reviving the | 
 |     differences between old and new semaphose funtions.  The old ones | 
 |     stay as they are now.  The new once can use an additional field | 
 |     wich is the counter for the number of waiters |