FreeBSD src
Go to file
Daniel Eischen 4fc937ef8f Change signal handling to conform to POSIX specified semantics.
Before this change, a signal was delivered to each thread that
didn't have the signal masked.  Signals also improperly woke up
threads waiting on I/O.  With this change, signals are now
handled in the following way:

  o If a thread is waiting in a sigwait for the signal,
    then the thread is woken up.

  o If no threads are sigwait'ing on the signal and a
    thread is in a sigsuspend waiting for the signal,
    then the thread is woken up.

  o In the case that no threads are waiting or suspended
    on the signal, then the signal is delivered to the
    first thread we find that has the signal unmasked.

  o If no threads are waiting or suspended on the signal,
    and no threads have the signal unmasked, then the signal
    is added to the process wide pending signal set.  The
    signal will be delivered to the first thread that unmasks
    the signal.

If there is an installed signal handler, it is only invoked
if the chosen thread was not in a sigwait.

In the case that multiple threads are waiting or suspended
on a signal, or multiple threads have the signal unmasked,
we wake up/deliver the signal to the first thread we find.
The above rules still apply.

Reported by:	Scott Hess <scott@avantgo.com>
Reviewed by:	jb, jasone
1999-12-04 22:55:59 +00:00
bin Fix "subscript has type `char'" warnings by casting to int, as 1999-12-04 17:12:47 +00:00
contrib When a Makefile.PL is evaluated in a subdirectory (ext/SDBM_Files/sdbm) 1999-12-04 12:35:56 +00:00
crypto Add the PAM SSH RSA key authentication module. For example, you can add, 1999-11-29 07:09:44 +00:00
etc Minor whitespace fix. 1999-12-04 01:27:51 +00:00
games Add Matt Fuller's comment about long-standing x86 bug that allows you 1999-12-02 23:46:49 +00:00
gnu Override PERL and FULLPERL to be just "perl". This prevents MakeMaker 1999-12-04 13:01:21 +00:00
include Added ntfs subdir to be filled. 1999-12-03 20:22:45 +00:00
kerberos5 Bring in SRA for telnet. 1999-10-07 18:59:55 +00:00
kerberosIV Bring in SRA for telnet. 1999-10-07 18:59:55 +00:00
lib Change signal handling to conform to POSIX specified semantics. 1999-12-04 22:55:59 +00:00
libexec Reactivate named-xfer 1999-11-30 06:23:04 +00:00
release Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers 1999-12-04 17:41:31 +00:00
sbin Properly align the columns of the header on Alpha. 1999-12-04 13:36:22 +00:00
secure Dont build telenet if we are going for kerberised telnet; this just 1999-10-12 19:48:05 +00:00
share Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers 1999-12-04 17:41:31 +00:00
sys Disconnect and tagged queueing now really work. Also fix a bug that's 1999-12-04 22:15:02 +00:00
tools Bring ``ac'' into reality. This great tools now works correctly (for 1999-11-04 08:45:02 +00:00
usr.bin The -s option was broken (missing braces around an else clause). 1999-12-04 03:19:15 +00:00
usr.sbin Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers 1999-12-04 17:41:31 +00:00
COPYRIGHT
Makefile
Makefile.inc0
Makefile.inc1 Place netgraph entry into alphabetical position 1999-11-25 20:05:07 +00:00
Makefile.upgrade
README
UPDATING Add poul's md information, in abbreviated form, to the UPDATING file. 1999-11-26 20:38:36 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel and the contents of /etc.  Please see the top of the Makefile
in this directory for more information on the standard build targets
and compile-time flags.

Building a kernel with config(8) is a somewhat more involved process,
documentation for which can be found at:
   http://www.freebsd.org/handbook/kernelconfig.html
And in the config(8) man page.

The sample kernel configuration files reside in the sys/i386/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file LINT contains entries for all possible devices, not
just those commonly used, and is meant more as a general reference
than an actual kernel configuration file (a kernel built from it
wouldn't even run).


Source Roadmap:
---------------
bin		System/User commands.

contrib		Packages contributed by 3rd parties.

crypto		Export controlled stuff (see crypto/README).

etc		Template files for /etc

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberosIV	Kerberos package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

sbin		System commands.

secure		DES and DES-related utilities - NOT FOR EXPORT!

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/handbook/synching.html