private void registerRequest(RequestInfo requestInfo, AsyncResult<?> result) { if (result.isComplete()) { requestComplete(requestInfo, result, 0L); return; } long start = System.currentTimeMillis(); result.onComplete(() -> { long durationMillis = System.currentTimeMillis() - start; requestComplete(requestInfo, result, durationMillis); }); }
@POST @Path("await-locks") public void waitForLocks(@Suspended final AsyncResponse response, WaitForLocksRequest request) { AsyncResult<Void> result = timelock.waitForLocks(request); lockLog.registerRequest(request, result); result.onComplete(() -> { if (result.isFailed()) { response.resume(result.getError()); } else if (result.isTimedOut()) { response.resume(WaitForLocksResponse.timedOut()); } else { response.resume(WaitForLocksResponse.successful()); } }); }
@POST @Path("lock") public void lock(@Suspended final AsyncResponse response, LockRequest request) { AsyncResult<LockToken> result = timelock.lock(request); lockLog.registerRequest(request, result); result.onComplete(() -> { if (result.isFailed()) { response.resume(result.getError()); } else if (result.isTimedOut()) { response.resume(LockResponse.timedOut()); } else { response.resume(LockResponse.successful(result.get())); } }); }
private void registerRequest(RequestInfo requestInfo, AsyncResult<?> result) { if (result.isComplete()) { requestComplete(requestInfo, result, 0L); return; } long start = System.currentTimeMillis(); result.onComplete(() -> { long durationMillis = System.currentTimeMillis() - start; requestComplete(requestInfo, result, durationMillis); }); }
@POST @Path("await-locks") public void waitForLocks(@Suspended final AsyncResponse response, WaitForLocksRequest request) { AsyncResult<Void> result = timelock.waitForLocks(request); lockLog.registerRequest(request, result); result.onComplete(() -> { if (result.isFailed()) { response.resume(result.getError()); } else if (result.isTimedOut()) { response.resume(WaitForLocksResponse.timedOut()); } else { response.resume(WaitForLocksResponse.successful()); } }); }
@POST @Path("lock") public void lock(@Suspended final AsyncResponse response, LockRequest request) { AsyncResult<LockToken> result = timelock.lock(request); lockLog.registerRequest(request, result); result.onComplete(() -> { if (result.isFailed()) { response.resume(result.getError()); } else if (result.isTimedOut()) { response.resume(LockResponse.timedOut()); } else { response.resume(LockResponse.successful(result.get())); } }); }