jobserv/src/test/java/JobServ/ProcessManagerTestImplementation.java

45 lines
1 KiB
Java
Raw Normal View History

/*
* ProcessManagerTestImplementation
*
* v1.0
*
* May 23, 2019
*/
package JobServ;
import java.util.concurrent.TimeoutException;
/*
* ProcessManagerTestImplementation
* inherits ProcessManager and adds useful functions for testing
*/
class ProcessManagerTestImplementation extends ProcessManager {
public void longCallHoldsLock(int pid) {
try {
super.getLock(pid);
System.err.println("[1] Long Call Has Lock");
// hold lock for 7 seconds, more than double normal timeout.
Thread.sleep(4000);
super.releaseLock(pid);
} catch (TimeoutException e) {
System.err.println("[!!] Long Call wasnt able to grab lock!");
return;
} catch (InterruptedException e) {
super.releaseLock(pid); // this doesnt happen, dont cancel this task
System.err.println("[3] Released lock: interrupted");
return;
}
}
public Boolean reportLockState(int pid) {
return super.lockMap.get(pid);
}
}