cvs commit: src/lib/libpthread pthread.map src/lib/libpthread/sys thr_error.c src/lib/libpthread/thread thr_cancel.c thr_clean.c thr_concurrency.c thr_cond.c thr_create.c thr_fork.c thr_init.c thr_kern.c thr_mutex.c thr_once.c thr_private.h thr_sem.c ...

Daniel Eischen deischen at FreeBSD.org
Sat Dec 18 10:07:38 PST 2004


deischen    2004-12-18 18:07:37 UTC

  FreeBSD src repository

  Modified files:
    lib/libpthread       pthread.map 
    lib/libpthread/sys   thr_error.c 
    lib/libpthread/thread thr_cancel.c thr_clean.c 
                          thr_concurrency.c thr_cond.c 
                          thr_create.c thr_fork.c thr_init.c 
                          thr_kern.c thr_mutex.c thr_once.c 
                          thr_private.h thr_sem.c thr_sig.c 
                          thr_sigsuspend.c thr_spinlock.c 
  Log:
  Use a generic way to back threads out of wait queues when handling
  signals instead of having more intricate knowledge of thread state
  within signal handling.
  
  Simplify signal code because of above (by David Xu).
  
  Use macros for libpthread usage of pthread_cleanup_push() and
  pthread_cleanup_pop().  This removes some instances of malloc()
  and free() from the semaphore and pthread_once() implementations.
  
  When single threaded and forking(), make sure that the current
  thread's signal mask is inherited by the forked thread.
  
  Use private mutexes for libc and libpthread.  Signals are
  deferred while threads hold private mutexes.  This fix also
  breaks www/linuxpluginwrapper; a patch that fixes it is at
  http://people.freebsd.org/~deischen/kse/linuxpluginwrapper.diff
  
  Fix race condition in condition variables where handling a
  signal (pthread_kill() or kill()) may not see a wakeup
  (pthread_cond_signal() or pthread_cond_broadcast()).
  
  In collaboration with:  davidxu
  
  Revision  Changes    Path
  1.14      +1 -0      src/lib/libpthread/pthread.map
  1.8       +1 -0      src/lib/libpthread/sys/thr_error.c
  1.32      +14 -6     src/lib/libpthread/thread/thr_cancel.c
  1.9       +3 -1      src/lib/libpthread/thread/thr_clean.c
  1.9       +7 -0      src/lib/libpthread/thread/thr_concurrency.c
  1.52      +118 -102  src/lib/libpthread/thread/thr_cond.c
  1.59      +1 -3      src/lib/libpthread/thread/thr_create.c
  1.35      +14 -10    src/lib/libpthread/thread/thr_fork.c
  1.67      +1 -0      src/lib/libpthread/thread/thr_init.c
  1.116     +16 -39    src/lib/libpthread/thread/thr_kern.c
  1.47      +79 -13    src/lib/libpthread/thread/thr_mutex.c
  1.10      +4 -2      src/lib/libpthread/thread/thr_once.c
  1.121     +19 -5     src/lib/libpthread/thread/thr_private.h
  1.16      +4 -4      src/lib/libpthread/thread/thr_sem.c
  1.83      +119 -156  src/lib/libpthread/thread/thr_sig.c
  1.25      +1 -0      src/lib/libpthread/thread/thr_sigsuspend.c
  1.22      +10 -6     src/lib/libpthread/thread/thr_spinlock.c


More information about the cvs-src mailing list