# $Id: README,v 1.3 1996/07/01 00:53:31 mtp Exp $
############################################################################
#    
#  COPYRIGHT NOTICE
#    
#  Copyright (C) 1995, 1996 Michael T. Peterson
#  This file is part of the PCthreads (tm) multithreading library
#  package.
#    
#  The source files and libraries constituting the PCthreads (tm) package
#  are free software; you can redistribute them and/or modify them under
#  the terms of the GNU Library General Public License as published by the Free
#  Software Foundation; either version 2 of the License, or (at your
#  option) any later version.
#    
#  The PCthreads (tm) package is distributed in the hope that it will
#  be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  Library General Public License for more details.
#    
#  You should have received a copy of the GNU Library General Public
#  License along with this library (see the file COPYING.LIB); if not,
#  write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
#  MA 02139, USA.
#    
#  To report bugs, bug fixes, or provide feedback you may contact the
#  author, Michael T. Peterson, at either of the two email addresses listed
#  below:
#    
#                 mtp@big.aa.net (Preferred)
#                 mtp@zso.dec.com
#    
#    
#  Michael T. Peterson
#  Issaquah, WA.
#  29 June, 1996
############################################################################
# $Log: README,v $
# Revision 1.3  1996/07/01 00:53:31  mtp
# + Added note that both ELF and AOUT versions of library need to be built
#   in order for install to work properly.
#
# Revision 1.2  1996/06/29 16:23:29  mtp
# + Clarified use of DEVROOT
#
# Revision 1.1  1996/06/29 16:08:09  mtp
# + Initial submission to PCthread source pool.
#
############################################################################
This distribution constitutes the first production release of PCthreads, a
POSIX 1003.1c compatible library of multithreading services for Linux.  Both
A.OUT and ELF libraries can be built from the distribution.  The distribution
contains the complete sources and build files to produce:

    - libpthread.a                  A.OUT format
    - libpthread.so.1.0.0           ELF format
    - All pthread POSIX manpages
    - pthread.h and typedefs.h
    - pthread_initrc                Runtime configuration file

To build and install the libraries, header files, and man pages you must do the
following:

    1) Create and set the DEVROOT environment variable to the directory
       path containing this [README] file.
       
       $prompt> setenv DEVROOT `pwd`    # csh example
       
    2) Issue the appropriate make command:
    
        a) To build the ELF version of pthreads:
        
            $prompt> make ISELF=yes all
            
        b) To build the AOUT version of pthreads:
        
            $prompt> make ISELF=no all
            
    3) To install the header and library files system-wide, make sure you've
       built both AOUT and ELF versions of the library, change to root (or
       superuser) and issue "make install"

The distribution also contains a sample runtime initialization file,
"pthread_initrc" in the ./etc directory.  Use of this file is optional, but it
allows you to set some of the more interesting runtime parameters of any
multithreaded application built against PCthreads.  Specifically, with the
pthread_initrc file, you are able to control:

    - The interrupt timer interval, and hence the frequency of clock-mediated
      context switching.

    - The idle interval.  The idle interval is the number of milliseconds the
      application will sleep when no threads are eligible to execute (e.g.,
      they're all blocked waiting for some event).

    - A thread's default timer quantum.  The timer quantum is the number of
      timer interrupts a thread is allowed to take before the thread runtime
      checks whether or not to preempt the thread.

    - The default scheduling priority for each thread, if not otherwise
      specified.

    - A thread's default stack size, if not otherwise specified.

When the application is invoked, it looks for a ".pthread_initrc" file in its
current directory.  If not found, it looks in the process's home directory.  If
still not found, it uses the package's hardcoded defaults.

Enjoy,

/mtp
