Unpacking and setting up minithreads in Visual Studio under Windows NT

1. Open Microsoft Visual Studio C++ (the code was written and compiled
   with version 6.0).

2. Select "New" from the File menu to create a new project. Choose to
   create a new Makefile, enter "minithreads" for the project name,
   and whatever location you want, and click "Ok".

3. In the dialog box, replace "mt.mak" with "Makefile" in the "Command
   line" text box and click "Finish".

4. Unzip the "minithreads.zip" file in the directory for your project.

5. Click on the "FileView" tab to get the list of the files. Go to the
   "Source Files" folder and right-click to get "Add Files to Folder",
   then select buffer.c, clock.c, end.c, minithread.c, minithread_md.c,
   minithread_public.c, queue.c, runtester.c, sieve.c, start.c, synch.c.
   Do the same in the "Header Files" folder, and add clock.h,
   minithread.h, minithread_md.h, minithread_public.h, queue.h and 
   synch.h.

6. ONLY DO THIS STEP IF YOU ARE NOT WORKING IN THE UNDERGRADUATE LAB.
   If the computer you are using does not have Visual Studio installed
   in the usual place (c:\Program Files\Microsoft Visual Studio), then
   change the line

	VISUALSTUDIO = c:\Program Files\Microsoft Visual Studio

   in "Makefile" to point to the correct location.

7. Select "Build minithreads.exe" from the "Build" menu. It should
   compile and link with a bunch of warnings. If you execute
   minithreads.exe, it will terminate immediately.

Three small test programs, test1.c, test2.c, and test3.c, are included
in the minithreads.zip file. They test spawning a thread, spawning
multiple threads, and ping-ponging between threads. They should be
useful when you are implementing minithreads. Two larger test
programs, buffer.c, a bounded buffer, and sieve.c, a sieve for finding
primes, are more complicated. Ideally, you should test your
minithreads implementation against these.

If you have problems with the project or questions, please send mail
to cs414@cs.cornell.edu or come to office hours for one of the TAs.

