/*
 * Created on Dec 16, 2004
 */

package javax.realtime.test.bridge;

import javax.realtime.PriorityParameters;
import javax.realtime.RealtimeThread;
import javax.realtime.RelativeTime;

import javax.realtime.DSS.DSS;
import javax.realtime.DSS.ThreadTerminatedException;

/**
 * @author gary
 */

public class Car extends RealtimeThread {

	public Car( String name, int priority, Bridge bridge ) {
		super( name, new PriorityParameters( priority ) );
		this.name = name;
		this.bridge = bridge;
	}
	
	public void body() throws InterruptedException, ThreadTerminatedException {	
		// System.out.println( name + " begins first hold" );
		DSS.hold( new RelativeTime( currentPriority, 0) );
		
		// System.out.println( name + " seizes bridge" );
		bridge.seize();

		// System.out.println( name + " begins second hold" );
		DSS.hold( new RelativeTime( 10, 0 ) );

		// System.out.println( name + " releases bridge" );
		bridge.release();
		
		// System.out.println( name + " exits body()" );
	}
	
	public String name;
	public Bridge bridge;
}
