cvs commit: src/sys/kern kern_sig.c kern_thr.c kern_thread.c src/sys/sys signalvar.h

Mike Makonnen mtm at FreeBSD.org
Thu Jul 3 12:10:01 PDT 2003


mtm         2003/07/03 12:09:59 PDT

  FreeBSD src repository

  Modified files:
    sys/kern             kern_sig.c kern_thr.c kern_thread.c 
    sys/sys              signalvar.h 
  Log:
  Signals sent specifically to a particular thread must
  be delivered to that thread, regardless of whether it
  has it masked or not.
  
  Previously, if the targeted thread had the signal masked,
  it would be put on the processes' siglist. If
  another thread has the signal umasked or unmasks it before
  the target, then the thread it was intended for would never
  receive it.
  
  This patch attempts to solve the problem by requiring callers
  of tdsignal() to say whether the signal is for the thread or
  for the process. If it is for the process, then normal processing
  occurs and any thread that has it unmasked can receive it.
  But if it is destined for a specific thread, it is put on
  that thread's pending list regardless of whether it is currently
  masked or not.
  
  The new behaviour still needs more work, though.  If the signal
  is reposted for some reason it is always posted back to the
  thread that handled it because the information regarding the
  target of the signal has been lost by then.
  
  Reviewed by:    jdp, jeff, bde (style)
  
  Revision  Changes    Path
  1.248     +14 -12    src/sys/kern/kern_sig.c
  1.11      +1 -5      src/sys/kern/kern_thr.c
  1.149     +1 -1      src/sys/kern/kern_thread.c
  1.63      +8 -1      src/sys/sys/signalvar.h


More information about the cvs-all mailing list