set = new GridCommunicationMessageSet(plc, msg.topic(), nodeId, timeout, skipOnTimeout, msg, msgC); set = new GridCommunicationMessageSet(plc, msg.topic(), nodeId, timeout, skipOnTimeout, msg, msgC)); assert !isNew; set.add(msg, msgC); if (isNew && set.endTime() != Long.MAX_VALUE) ctx.timeout().addTimeoutObject(set);
pools.poolForPolicy(msgSet.policy()).execute( new Runnable() { @Override public void run() {
set = new GridCommunicationMessageSet(plc, msg.topic(), nodeId, timeout, skipOnTimeout, msg, msgC); set = new GridCommunicationMessageSet(plc, msg.topic(), nodeId, timeout, skipOnTimeout, msg, msgC)); assert !isNew; set.add(msg, msgC); if (isNew && set.endTime() != Long.MAX_VALUE) ctx.timeout().addTimeoutObject(set);
pools.poolForPolicy(msgSet.policy()).execute( new Runnable() { @Override public void run() {
closedTopics.add(set.topic());
endTime = endTime(timeout - delta);
this.skipOnTimeout = skipOnTimeout; endTime = endTime(timeout);
/** * @param msgSet Message set to unwind. * @param lsnr Listener to notify. */ private void unwindMessageSet(GridCommunicationMessageSet msgSet, GridMessageListener lsnr) { // Loop until message set is empty or // another thread owns the reservation. while (true) { if (msgSet.reserve()) { try { msgSet.unwind(lsnr); } finally { msgSet.release(); } // Check outside of reservation block. if (!msgSet.changed()) { if (log.isDebugEnabled()) log.debug("Message set has not been changed: " + msgSet); break; } } else { if (log.isDebugEnabled()) log.debug("Another thread owns reservation: " + msgSet); return; } } }
closedTopics.add(set.topic());
endTime = endTime(timeout - delta);
/** * @param msgSet Message set to unwind. * @param lsnr Listener to notify. */ private void unwindMessageSet(GridCommunicationMessageSet msgSet, GridMessageListener lsnr) { // Loop until message set is empty or // another thread owns the reservation. while (true) { if (msgSet.reserve()) { try { msgSet.unwind(lsnr); } finally { msgSet.release(); } // Check outside of reservation block. if (!msgSet.changed()) { if (log.isDebugEnabled()) log.debug("Message set has not been changed: " + msgSet); break; } } else { if (log.isDebugEnabled()) log.debug("Another thread owns reservation: " + msgSet); return; } } }
this.skipOnTimeout = skipOnTimeout; endTime = endTime(timeout);