How to solve the Santa Claus problem

MORDECHAI BEN-ARI
1998 Concurrency Practice and Experience  
John Trono published a new exercise in concurrent programming-the Santa Claus problem-and provided a solution based on semaphores [12] . His solution is incorrect because it assumes that a process released from waiting on a semaphore will necessarily be scheduled for execution. We give a simple solution in Ada 95 using higher order synchronization primitives: protected objects and rendezvous. We then give solution in Java, though this solution is not as elegant as the Ada 95 solution because
more » ... Java synchronization primitives are rather limited. The problem demonstrates that semaphores, designed for low-level mutual exclusion, are not appropriate for solving difficult concurrent programming problems.
doi:10.1002/(sici)1096-9128(199805)10:6<485::aid-cpe329>3.0.co;2-2 fatcat:bdsq57yl7zdk7hiscypnheekiq