freebsd-nq/lib
David Xu a772047bc6 o Use a daemon thread to monitor signal events in kernel, if pending
signals were changed in kernel, it will retrieve the pending set and
  try to find a thread to dispatch the signal. The dispatching process
  can be rolled back if the signal is no longer in kernel.

o Create two functions _thr_signal_init() and _thr_signal_deinit(),
  all signal action settings are retrieved from kernel when threading
  mode is turned on, after a fork(), child process will reset them to
  user settings by calling _thr_signal_deinit(). when threading mode
  is not turned on, all signal operations are direct past to kernel.

o When a thread generated a synchoronous signals and its context returned
  from completed list, UTS will retrieve the signal from its mailbox and try
  to deliver the signal to thread.

o Context signal mask is now only used when delivering signals, thread's
  current signal mask is always the one in pthread structure.

o Remove have_signals field in pthread structure, replace it with
  psf_valid in pthread_signal_frame. when psf_valid is true, in context
  switch time, thread will backout itself from some mutex/condition
  internal queues, then begin to process signals. when a thread is not
  at blocked state and running, check_pending indicates there are signals
  for the thread, after preempted and then resumed time, UTS will try to
  deliver signals to the thread.

o At signal delivering time, not only pending signals in thread will be
  scanned, process's pending signals will be scanned too.

o Change sigwait code a bit, remove field sigwait in pthread_wait_data,
  replace it with oldsigmask in pthread structure, when a thread calls
  sigwait(), its current signal mask is backuped to oldsigmask, and waitset
  is copied to its signal mask and when the thread gets a signal in the
  waitset range, its current signal mask is restored from oldsigmask,
  these are done in atomic fashion.

o Two additional POSIX APIs are implemented, sigwaitinfo() and sigtimedwait().

o Signal code locking is better than previous, there is fewer race conditions.

o Temporary disable most of code in _kse_single_thread as it is not safe
  after fork().
2003-06-28 09:55:02 +00:00
..
compat Add libgmp.so.3 from 4.7-RELEASE CDs. 2003-02-17 17:26:03 +00:00
csu Removed garbage: 2003-06-04 11:21:18 +00:00
libalias In the PKT_ALIAS_PROXY_ONLY mode, make sure to preserve the 2003-06-13 21:54:01 +00:00
libatm fix __FBSDID 2003-04-20 18:41:16 +00:00
libbind
libbz2 Remove MAINTAINER lines. 2003-06-14 19:32:52 +00:00
libc Update to reflect changes in vfscanf.c,v 1.32. Remove bogus 2003-06-28 09:03:25 +00:00
libc_r Sanity check fd before using it as an array index. 2003-06-09 16:45:37 +00:00
libcalendar
libcam Remove MAINTAINER= lines in the makefiles for camcontrol, iostat, libcam 2003-06-14 05:28:01 +00:00
libcom_err
libcompat Add section number with .Xr. .Xr -> .Vt changes. 2003-06-08 10:17:24 +00:00
libcrypt The .Fn function 2003-06-08 10:20:32 +00:00
libdevinfo Expand length of pnpinfo and length fields since pccard pnpinfo can 2003-02-17 18:56:00 +00:00
libdevstat Remove MAINTAINER= lines in the makefiles for camcontrol, iostat, libcam 2003-06-14 05:28:01 +00:00
libdisk Sanity check the list obtained from the kern.disks sysctl so that Disk_Names() 2003-06-07 20:02:56 +00:00
libedit The .Fn function 2003-02-06 11:25:03 +00:00
libexpat english(4) police. 2002-12-27 12:15:40 +00:00
libfetch Add an EXAMPLES section. 2003-06-10 20:41:18 +00:00
libform Use 2003-06-06 13:46:55 +00:00
libftpio The .Fn function 2003-06-08 10:34:00 +00:00
libgeom The .Fn function 2003-06-18 19:43:17 +00:00
libio
libipsec Buffer size is not enough in the previous commit. Use 128. 2003-04-17 07:20:00 +00:00
libipx Correct a typo. 2003-06-08 19:41:58 +00:00
libisc Fix the #include part of the SYNOPSIS for heap.3 2003-06-17 08:43:19 +00:00
libkse o Use a daemon thread to monitor signal events in kernel, if pending 2003-06-28 09:55:02 +00:00
libkvm P_THREADED was renamed to P_SA, follow up. 2003-06-15 03:42:04 +00:00
libmd Rename local variables to not mask global names of same name. This 2003-06-05 13:17:32 +00:00
libmenu Use 2003-06-06 13:46:55 +00:00
libmilter
libmp Adjust for OpenSSL 0.9.7. 2003-01-28 23:03:15 +00:00
libncp No need to have ifdef < FreeBSD 4.0-current in here. Remove it to 2003-04-04 04:16:06 +00:00
libncurses Use 2003-06-06 13:46:55 +00:00
libnetgraph The .Fn function 2003-06-08 10:34:00 +00:00
libopie
libpam Fix the master yppasswd routines, so they really work 2003-06-15 10:37:22 +00:00
libpanel Use 2003-06-06 13:46:55 +00:00
libpcap
libpthread o Use a daemon thread to monitor signal events in kernel, if pending 2003-06-28 09:55:02 +00:00
libradius Add IPv6 related attributes defined in RFC3162. 2003-06-18 17:29:15 +00:00
librpcsvc
libsbuf
libsm
libsmb
libsmdb
libsmutil
libstand Add amd64 build glue 2003-06-26 03:48:01 +00:00
libtacplus
libtelnet
libthr Create compatibility links for libc_r on ia64 to prevent build-time 2003-06-27 18:07:47 +00:00
libufs Correct an apparent typo. 2003-06-19 22:12:54 +00:00
libugidfw Assorted mdoc(7) fixes. 2003-06-01 19:41:49 +00:00
libusbhid Assorted mdoc(7) fixes. 2003-05-22 13:02:28 +00:00
libutil Tidy up. Sort headers. 2003-06-14 18:42:37 +00:00
libvgl Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup, 2003-01-01 18:49:04 +00:00
libwrap Drop stale MAINTAINER bit. 2003-06-04 16:01:37 +00:00
libxpg4 Mark libxpg4 as OBSOLETE_IN_6: it has been empty since its contents 2003-06-13 07:21:37 +00:00
liby
libypclnt Fix the master yppasswd routines, so they really work 2003-06-15 10:36:53 +00:00
libz Fix URL of zlib home page: It's hosted at gzip.org now. 2003-06-26 20:05:47 +00:00
msun Fix two misuses of __BSD_VISIBLE. 2003-05-22 17:07:57 +00:00
ncurses Use 2003-06-06 13:46:55 +00:00
Makefile o disconnect libc_r from the build on ia64. The library is now 2003-06-27 07:41:51 +00:00
Makefile.inc