4 -20 Missing or far too brief DESIGNDOC
5 -2 Troublesome or unexplained dependencies
6 -2 Changing interfaces, each (max -6)
8 DESIGNDOC (per problem):
9 -1 Minor details missing
10 -2 Major details missing
13 Problem 1-1: Alarm Clock
14 -1 Uses lock/interrupt disabling without justifying
15 -1 Uses a lock inside of CallBack
17 -2 Wakes up too often, e.g. by using semaphores with negative values
18 -1 Traverses entire list of sleeping threads every tick
19 -1 Put threads to sleep directly
20 -1 Doesn't protect data structure in CallBack
21 -1 Doesn't protect data structure in WaitUntil
25 -3 Busy waiting in thread finish when waiting on the parent's join
26 -3 A static list of all parent-child pairs is extremely wasteful
27 -3 Obviously wasteful with memory (not deleting threads)
28 -2 Finished parent deletes children which may still be running
29 -1 Enable/disable interrupts or put thread to sleep directly
30 -2 Joinable child lets its Thread object be deleted before parent dies
31 -1 Race condition between join and thread exit
33 Problem 1-3: Priority Scheduler
34 -3 Doesn't use sorted queue scheduler, and don't justify why they didn't
35 -1 Semaphores don't wake highest-priority thread first
36 -1 Condition variables don't wake highest-priority thread first
37 -1 Should use sorted queue in semaphores, unless explained in DESIGNDOC
38 -1 Should use sorted queue in conditions, unless explained in DESIGNDOC
39 -2 Yield should pick the highest-priority thread (including current)
41 +2 Used a heap or other advanced priority queue for ready_list
43 Problem 1-4: Advanced Scheduler
50 -2 Problem 1-1: no test cases/no test output/no description in TESTCASES
51 -1 Problem 1-1: not enough testing/inconclusive test output
52 -2 Problem 1-2: no test cases/no test output/no description in TESTCASES
53 -1 Problem 1-2: not enough testing/inconclusive test output
54 -2 Problem 1-3: no test cases/no test output/no description in TESTCASES
55 -1 Problem 1-3: not enough testing/inconclusive test output
56 -2 Problem 1-4: no test cases/no test output/no description in TESTCASES
57 -1 Problem 1-4: not enough testing/inconclusive test output
62 Insert any comments here