freebsd-skq/lib
David Xu 9b0f1823b5 Use umtx to implement process sharable semaphore, to make this work,
now type sema_t is a structure which can be put in a shared memory area,
and multiple processes can operate it concurrently.
User can either use mmap(MAP_SHARED) + sem_init(pshared=1) or use sem_open()
to initialize a shared semaphore.
Named semaphore uses file system and is located in /tmp directory, and its
file name is prefixed with 'SEMD', so now it is chroot or jail friendly.
In simplist cases, both for named and un-named semaphore, userland code
does not have to enter kernel to reduce/increase semaphore's count.
The semaphore is designed to be crash-safe, it means even if an application
is crashed in the middle of operating semaphore, the semaphore state is
still safely recovered by later use, there is no waiter counter maintained
by userland code.
The main semaphore code is in libc and libthr only has some necessary stubs,
this makes it possible that a non-threaded application can use semaphore
without linking to thread library.
Old semaphore implementation is kept libc to maintain binary compatibility.
The kernel ksem API is no longer used in the new implemenation.

Discussed on: threads@
2010-01-05 02:37:59 +00:00
..
bind Update to BIND 9.6.1-P2. The vulnerability this is designed to fix is 2009-11-30 03:38:34 +00:00
csu Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libalias Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libarchive Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libauditd Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libautofs Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libbegemot Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libbluetooth Fix typo in bluetooth.3 2009-10-26 17:27:30 +00:00
libbsm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libbsnmp Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libbz2 Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libc Use umtx to implement process sharable semaphore, to make this work, 2010-01-05 02:37:59 +00:00
libc_r Use, in uncovered part, the END() macro in order to improve debugging. 2009-05-25 14:37:10 +00:00
libcalendar Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libcam Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libcom_err
libcompat Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libcrypt Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libdevinfo Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libdevstat Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libdisk Disable a check on a disk size because it's too strict. This change is 2009-09-21 04:04:02 +00:00
libdwarf Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libedit Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libelf Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libexpat Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libfetch Fix a socket leak in ftp_request() after that a connection is established. 2009-11-25 14:57:07 +00:00
libftpio Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libgeom Add missing `void' keyword. 2009-12-31 01:37:26 +00:00
libgpib Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libgssapi Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libipsec Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libipx Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libjail Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libkiconv Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libkse Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libkvm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmagic Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmd Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmemstat Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libmilter Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libmp Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libncp Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libnetgraph bring the NGM_IPFW_COOKIE back into ng_ipfw.h, libnetgraph expects 2009-12-28 12:29:13 +00:00
libngatm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libopie Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libpam Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libpcap Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libpmc Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libproc Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libradius Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
librpcsec_gss Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
librpcsvc Use ANSI function declarations in librpcsvc. 2009-02-26 20:32:11 +00:00
librt Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsbuf Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsdp Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libsm Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsmb Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libsmdb Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libsmutil Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libstand Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libtacplus Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libtelnet Rename all symbols in libmp(3) to mp_*, just like Solaris. 2009-02-26 21:43:15 +00:00
libthr Use umtx to implement process sharable semaphore, to make this work, 2010-01-05 02:37:59 +00:00
libthread_db Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libufs Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libugidfw Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libulog Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libusb Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libusbhid Bump the version of all non-symbol-versioned shared libraries in 2009-07-19 17:25:24 +00:00
libutil Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libvgl Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libwrap Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
liby Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libypclnt Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
libz Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
msun Use the documented machine constraint for SSE registers. 2009-06-11 13:59:51 +00:00
ncurses Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00
Makefile Convert pam_lastlog(8) to libulog. 2009-12-11 14:15:55 +00:00
Makefile.inc Build lib/ with WARNS=6 by default. 2010-01-02 09:58:07 +00:00