xf.li | bdd93d5 | 2023-05-12 07:10:14 -0700 | [diff] [blame] | 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 |
| 7 | sys_futex |
| 8 | |
| 9 | - for adaptive mutexes: when releasing, determine whether somebody spins. |
| 10 | If yes, for a short time release lock. If someone else locks no wakeup |
| 11 | syscall 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 |