/** * Internal method to remove requests. If request has not been passed to the * {@link SpiceService} yet, all listeners are unregistered locally before * being passed to the service. Otherwise, it will asynchronously ask to the * {@link SpiceService} to remove the listeners of the request being * processed. * @param request * Request for which listeners are to unregistered. */ protected void dontNotifyRequestListenersForRequestInternal(final SpiceRequest<?> request) { lockSendRequestsToService.lock(); try { final boolean requestNotPassedToServiceYet = removeListenersOfCachedRequestToLaunch(request); Ln.v("Removed from requests to launch list : " + requestNotPassedToServiceYet); // if the request was already passed to service, bind to // service and // unregister listeners. if (!requestNotPassedToServiceYet) { removeListenersOfPendingCachedRequest(request); Ln.v("Removed from pending requests list"); } } catch (final InterruptedException e) { Ln.e(e, "Interrupted while removing listeners."); } finally { lockSendRequestsToService.unlock(); } }