//System.out.print("R-" + tid + " ");
aborted = true;
context.rollback();
if(earlierTxPresent) {
//while(true) {
DummyObject object = new DummyObject(threadID);
synchronized(object) {
SignalWaitingTxRequest.threadObjectMap.put(threadID, object);
//System.out.println("Thread " + threadID + " Waiting ");
SignalWaitingTxRequest.threadList.add(threadID);
DTL2Directory.threadPhaseMap.put(thread_id, DTL2Directory.NOT_IN_COMMIT_PHASE);
try{
Logger.debug("Thread " + threadID + " Waiting Again " );
Timespec remainingTime = new Timespec();
current.getTime();
if(earlierDeadline(current, deadline) == DeadlineStatus.EARLIER) {
remainingTime.setTime(deadline);
remainingTime.subtract(current);
long milliSecRemaining = remainingTime.getSeconds()*1000 + remainingTime.getNanoseconds()/ 1000000;
object.wait(milliSecRemaining);
Logger.debug("Thread " + threadID + " Wait is over ");
} else
Logger.debug("Thread " + threadID + " did not wait ");
} catch(InterruptedException ex) {