@Override public void put(E e) throws InterruptedException { queueingStrategy.onBeforeAdd(e); try { super.put(e); } finally { queueingStrategy.onAfterAdd(); } }
@Override public boolean add(E e) { queueingStrategy.onBeforeAdd(e); try { return super.add(e); } finally { queueingStrategy.onAfterAdd(); } }
@Override protected void go() throws Exception { // If the heap is filling up, this should block for a bit. queueStrategy.on*Remove called when // task processing completes in the WorkerQueueItemHandler. queueingStrategy.onBeforeAdd(null); QSTaskModel task = taskService.getAvailableTask(); taskServices.put(task, taskService); transferQueue.put(task); queueingStrategy.onAfterAdd(); } }