Home | History | Annotate | Line # | Download | only in libpthread
TODO revision 1.1.2.6
      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    - stdio locks
     11  1.1.2.3  nathanw    - errno
     12  1.1.2.3  nathanw    - foo_r interfaces
     13  1.1.2.3  nathanw    - cancellation points
     14  1.1.2.3  nathanw - system integration
     15  1.1.2.3  nathanw    - some macros and prototypes belong in headers other than pthread.h
     16  1.1.2.3  nathanw 
     17  1.1.2.3  nathanw 
     18  1.1.2.3  nathanw Features that need more/better regression tests:
     19  1.1.2.3  nathanw  - pthread_cond_broadcast()
     20  1.1.2.3  nathanw  - pthread_once()
     21  1.1.2.3  nathanw  - pthread_get/setspecific()
     22  1.1.2.3  nathanw  - signals
     23  1.1.2.3  nathanw 
     24  1.1.2.3  nathanw 
     25  1.1.2.3  nathanw Things that need fixing:
     26  1.1.2.4  nathanw - Correct [non]resumption of PT_IDLED thread.
     27  1.1.2.3  nathanw - Recycle dead threads for new threads.
     28  1.1.2.3  nathanw 
     29  1.1.2.3  nathanw Ideas to play with:
     30  1.1.2.3  nathanw - Explore the trapcontext vs. usercontext distinction in ucontext_t.
     31  1.1.2.3  nathanw - Get rid of thread structures when too many accumulate (is this
     32  1.1.2.3  nathanw   actually a good idea?)
     33  1.1.2.3  nathanw - Adaptive spin/sleep locks for mutexes.
     34  1.1.2.1  nathanw - Supporting different mutex types would be nice (normal, debugging,
     35  1.1.2.1  nathanw   recursive, etc).
     36  1.1.2.1  nathanw - Currently, each thread uses two real pages of memory: one at the top
     37  1.1.2.1  nathanw   of the stack for actual stack data, and one at the bottom for the
     38  1.1.2.1  nathanw   pthread_st. If we can get suitable space above the initial stack for
     39  1.1.2.1  nathanw   main(), we can cut this to one page per thread. Perhaps crt0 should
     40  1.1.2.1  nathanw   do something different (give us more space) if libpthread is linked
     41  1.1.2.1  nathanw   in?
     42  1.1.2.1  nathanw - Figure out whether/how to expose the inline version of
     43  1.1.2.1  nathanw   pthread_self().
     44