/user-level-thread

a school project for a simple use level thread library

Primary LanguageShellGNU General Public License v2.0GPL-2.0

Simplethreads Instructional Threads Package
Copyright (c) Rick Cox 2002 All Rights Reserved
Available under the GNU General Public License.
See file COPYING.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Updated January 2012 - April 2012 by Peter Hornyack

This file is intended for TAs more than students; students should see the
description of the simplethreads project on the CSE 451 webpage for detailed
information.

The contents of the original README file are below. For UW's CSE 451 in
sprint 2012, I updated simplethreads to work on 64-bit x86, along with
various other changes along the way. Unfortunately some of the nice features
of Rick's original distribution have been lost along the way, like the
integration of solution files with the code and the ability to run "make
student-dist" to package up the project. However, future TAs should pay
attention to the following instructions:

First, if you are reading this file because you downloaded the source code
from a previous quarter's website, STOP RIGHT NOW and access the source
code instead via the cse451 git repository (currently located at
/cse/courses/cse451/cse451git on instructional servers such as attu and
vole). Check out /cse/courses/cse451/cse451git-README for instructions on
how to clone the repository. The repository contains much more stuff
(like solutions and grading scripts!) that will make your life easy.

Now that you're working with the full repository of code, you can make
adjustments and commit them to the repository as needed. To create a code
package that can be distributed to students, configure and then "make
dist". Makefile.am specifies SUBDIRS which will be included in the dist
package (along with all of the files in this top-level directory, I think),
so it will skip the "other", "grading", "solutions", etc. directories
(double-check this .tar.gz that is created before posting the file on the
class website, of course).

Some other notes:
  - the version number can be found in configure.ac

-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Platforms Supported
 - i386
 - PowerPC
 
Tested on:
 - Linux 2.4.21/RedHat 7.3/i386, P3, P4, and Dual P3
 - Linux 2.4.21/Debian 3.0/i386, Dual Xeon
 - Mac OS X 10.3.2, G4 and G5
 - FreeBSD 4.9/i386, P4
 - NetBSD 1.6.1/i386, P4 [user threads only]
 - NetBSD 1.6/i386, P2 [user threads only]

----------------------------------------------------------------------
For Instructors:

Use "make student-dist" to generate a distribution without the
solutions.

For part 1, consider having the students write a design and submit
that before the code.

Because students may need to update their Makefile.ins (for example,
when adding new source files), they need access to a working version
of automake. As of 1/17/2004, spinlock and coredump have automake-1.5,
which is broken enough that we can't easily suport it. So the latest
automake/autoconf has been installed in
/cse451/projects/tools/bin. The autoreconf script in that directory
has also been hacked to force the use of those tools.

----------------------------------------------------------------------
To build from CVS:

Generating the configure script requires the following packages:
  autoconf >= 2.57
  automake >= 1.6
  libtool >= 1.5

On CSE grad workstatsions, run (the env variables are required):

export AUTOCONF=autoconf-2.57 AUTOHEADER=autoheader-2.57
export AUTOMAKE=automake-1.7 ACLOCAL=aclocal-1.7
aclocal-1.7 && autoheader-2.57 && automake-1.7 -a && autoconf-2.57