Fixed a race condition in the reference solution that happened during the creation of a new job. The race existed between (1) the parent adding a new job to the job list and (2) the receipt of a SIGINT or SIGTSTP signal. The fix is to block SIGINT and SIGTSTP signals in the parent until after the new job has been added to the job list. A similar race was already properly handled for SIGCHLD signals.
Also made some minor changes to the reference solution:
Changed the command line parser supplied to the students so that characters surrounded by single quotes are treated as a single argument. This allows the tiny shell to handle commands such as tsh> /bin/sh -c 'ps | fgrep mysplit'
Made a slight change to the formatting of job list output.
12/05/2002
Added a new trace file (trace16.txt) that tests the shell's ability to handle SIGINT and SIGTSTP signals that do not originate from the terminal.
10/16/2002
Fixed bug in tracefile src/trace10.txt, which told the driver to sleep too long before running the fg command.
Removed assumptions in src/Makefile and grade/Makefile that the user had a "." in their Unix path.