public class Producer extends Thread {
    private CubbyHole cubbyhole;
    private int number;
    private myCounter count = new myCounter();

    public Producer(CubbyHole c, int number) {
	super();
	setName("Thread " + count.getNextID().toString());
        cubbyhole = c;
        this.number = number;
    }
    
    
    public void run() {
	Long l = new Long(ProducerConsumerTest.TS.getTimestamp().getTime());
	ProducerConsumerTest.LC.writeRecord (getName(),  l.toString(), "Producer started");
        for (int i = 0; i < 10; i++) {
	    l = new Long(ProducerConsumerTest.TS.getTimestamp().getTime());
            ProducerConsumerTest.LC.writeRecord (getName(), l.toString(), "Producer #" + this.number + " entered put(): " + i);
            cubbyhole.put(i);
	    l = new Long(ProducerConsumerTest.TS.getTimestamp().getTime());
            ProducerConsumerTest.LC.writeRecord (getName(), l.toString(), "Producer #" + this.number + " exited put(): " + i);
            try {
                sleep((int)(Math.random() * 100));
            } catch (InterruptedException e) { }
	}
	    l = new Long(ProducerConsumerTest.TS.getTimestamp().getTime());
	    ProducerConsumerTest.LC.writeRecord (getName(),  l.toString(), "Producer ended");
    }
}

