Subject Name: diningPhilosophers
Souce Code Language: Java
Number of Versions: 1
Number of Variants: 1
   - orig
Error expected:
   orig: deadlock
Non-determinisitc: yes

***orig***
LOC: 27 (noncomment Java source code)
Classes: 3
Methods: 3
Fields: 6
Statements: 12
wait() call: 0
notifyAll() call: 0
Sync blocks: 2
Thread start() calls: 1
New expressions: 5

The diningPhilosophers program is the classic concurrency problem
first posited by Dykstra and Hoare implemented in Java.
The subject presented here is the version used
in [1] and is a research object used in references [2] and [3]:

References:

[1] Y. Eytani, and S. Ur. "Compiling a Benchmark of Documented Multi-threaded Bugs"
in Proceedings of the 18th International Symposium on Parallel and Distributed 
Processing: 266. April 2004.

[2] Y. Eytani, K. Havelund, S.D. Stoller, and S. Ur.  "Toward a Framework and 
Benchmark for Testing Tools for Multi-Threaded Programs" in Concurrency and 
Computation: Practice and Experience, 19(3): 267-279. 2006.

[3] Dwyer, Matthew B. and Person, Suzette and Elbaum, Sebastian.
Controlling factors in evaluating path-sensitive error detection techniques,
SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT international symposium
on Foundations of software engineering, 2006, isbn 1-59593-468-5, pp. 92--104,
Portland, Oregon, USA, ACM, New York, NY, USA.
