// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov Date: 22/10/2010 00:26:10
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
//package org.jcsp.lang; DJ
package jcircus.classesdescompiladas;
import org.jcsp.lang.*;
// Referenced classes of package org.jcsp.lang:
// Barrier, Parallel, CSProcess
class ParThread extends Thread
{
public ParThread(CSProcess csprocess, Barrier barrier1)
{
running = true;
park = new Barrier(2);
setDaemon(true);
process = csprocess;
barrier = barrier1;
setName(csprocess.toString());
}
public void reset(CSProcess csprocess, Barrier barrier1)
{
process = csprocess;
barrier = barrier1;
setName(csprocess.toString());
}
public void terminate()
{
running = false;
park.sync();
}
public void release()
{
park.sync();
}
public void run()
{
try {
CSPParallel.addToAllParThreads(this);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
while(running)
{
try
{
process.run();
}
catch(Throwable throwable)
{
CSPParallel.uncaughtException("org.jcsp.lang.Parallel", throwable);
}
barrier.resign();
park.sync();
}
CSPParallel.removeFromAllParThreads(this);
//break MISSING_BLOCK_LABEL_75; //Sam's
Throwable throwable1 = /*Sam's ->*/ new Throwable ();
//throwable1; //DJ
CSPParallel.uncaughtException("org.jcsp.lang.Parallel", throwable1);
CSPParallel.removeFromAllParThreads(this);
//break MISSING_BLOCK_LABEL_75; //Sam's
Exception exception /*Sam's ->*/ = new Exception ();
//exception; //DJ
CSPParallel.removeFromAllParThreads(this);
try { //Sam's
throw exception;
} catch (Exception e) { //Sam's
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private CSProcess process;
private Barrier barrier;
private boolean running;
private Barrier park;
}