Logging.parkStatus(controller, Logging.ParkStatusType.PARK, threadparkingName);
controller.getThreadMonitor().threadPaused(threadparkingName); // we are stopping ...
// keep all logic in the created awaitObject, to keep thread safety here and
// remove the need for more locks
ParkTimeout parkObj = new ParkTimeout(controller, threadparking);
parkObj.parkUntil(deadline); // returns when done ...
Logging.parkStatus(controller, Logging.ParkStatusType.PARKRELEASED, threadparkingName);
// Wait for ns-2
ProtolibTimer timer = new ProtolibTimer(controller, 0, 0); // and then immediately stopping