1 1.1.2.1 nathanw 2 1.1.2.3 nathanw Interfaces/features to implement: 3 1.1.2.3 nathanw - cancellation 4 1.1.2.3 nathanw - pthread_cond_wait() and associated timing goop. 5 1.1.2.3 nathanw - pthread_kill() 6 1.1.2.3 nathanw - pthread_atfork() 7 1.1.2.3 nathanw - priority scheduling 8 1.1.2.3 nathanw - non-i386 platform support 9 1.1.2.3 nathanw - libc integration: 10 1.1.2.3 nathanw - foo_r interfaces 11 1.1.2.3 nathanw - cancellation points 12 1.1.2.8 thorpej - flockfile()/funlockfile()/ftrylockfile() 13 1.1.2.3 nathanw - system integration 14 1.1.2.3 nathanw - some macros and prototypes belong in headers other than pthread.h 15 1.1.2.3 nathanw 16 1.1.2.3 nathanw 17 1.1.2.3 nathanw Features that need more/better regression tests: 18 1.1.2.3 nathanw - pthread_cond_broadcast() 19 1.1.2.3 nathanw - pthread_once() 20 1.1.2.3 nathanw - pthread_get/setspecific() 21 1.1.2.3 nathanw - signals 22 1.1.2.3 nathanw 23 1.1.2.3 nathanw 24 1.1.2.3 nathanw Things that need fixing: 25 1.1.2.4 nathanw - Correct [non]resumption of PT_IDLED thread. 26 1.1.2.3 nathanw - Recycle dead threads for new threads. 27 1.1.2.3 nathanw 28 1.1.2.3 nathanw Ideas to play with: 29 1.1.2.3 nathanw - Explore the trapcontext vs. usercontext distinction in ucontext_t. 30 1.1.2.3 nathanw - Get rid of thread structures when too many accumulate (is this 31 1.1.2.3 nathanw actually a good idea?) 32 1.1.2.3 nathanw - Adaptive spin/sleep locks for mutexes. 33 1.1.2.1 nathanw - Supporting different mutex types would be nice (normal, debugging, 34 1.1.2.1 nathanw recursive, etc). 35 1.1.2.1 nathanw - Currently, each thread uses two real pages of memory: one at the top 36 1.1.2.1 nathanw of the stack for actual stack data, and one at the bottom for the 37 1.1.2.1 nathanw pthread_st. If we can get suitable space above the initial stack for 38 1.1.2.1 nathanw main(), we can cut this to one page per thread. Perhaps crt0 should 39 1.1.2.1 nathanw do something different (give us more space) if libpthread is linked 40 1.1.2.1 nathanw in? 41 1.1.2.1 nathanw - Figure out whether/how to expose the inline version of 42 1.1.2.1 nathanw pthread_self(). 43