CS 335 - 2/5/13 Therac - 25 Radiation Treatment Machines Updated model of older machines Used old software to save production costs - older version had hardware safety control Improperly delivered radiation doses Problem was caused by a race condition - 2 threads update a value at the same time. Lock: initialize to 0 while (lock == 1) ; lock = 1; svalue changed perform some tasked svalue get reset lock = 0; Treatment centers were reporting errors - manufacturer didn't believe the errors existed June 85 - first incident reported July 85 Dec 85 Feb 87, FDA declared Thereac 25 defective July 87, A corrective action plan is produced In order for a moral agent to be responsible for a harmful event, two conditions must hold - Causal Condition: the actions or inactions of the agent must have caused harm. - Mental Condition: the actions or inactions must have been intended or willed by the agent.