public Object up(Message msg) { // https://issues.jboss.org/browse/JGRP-1341: let unicast messages pass if(msg.isFlagSet(Message.Flag.SKIP_BARRIER) || msg.getDest() != null && ((msg.isFlagSet(Message.Flag.OOB) && msg.isFlagSet(Message.Flag.INTERNAL)) || holes.contains(msg.getSrc()))) return up_prot.up(msg); if(barrier_closed.get()) { final Map<Address,Message> map=msg.getDest() == null? mcast_queue : ucast_queue; map.put(msg.getSrc(), msg); return null; // queue and drop the message } Thread current_thread=Thread.currentThread(); in_flight_threads.put(current_thread, NULL); try { return up_prot.up(msg); } finally { unblock(current_thread); } }
public void up(MessageBatch batch) { // let unicast message batches pass if(batch.dest() != null && (batch.mode() == MessageBatch.Mode.OOB && batch.mode() == MessageBatch.Mode.INTERNAL) || holes.contains(batch.sender())) { up_prot.up(batch); return; } if(barrier_closed.get()) { final Map<Address,Message> map=batch.dest() == null? mcast_queue : ucast_queue; map.put(batch.sender(), batch.last().putHeader(transport.getId(),new TpHeader(batch.clusterName()))); return; // queue the last message of the batch and drop the batch } Thread current_thread=Thread.currentThread(); in_flight_threads.put(current_thread, NULL); try { up_prot.up(batch); } finally { unblock(current_thread); } }
public Object up(Message msg) { // https://issues.jboss.org/browse/JGRP-1341: let unicast messages pass if(msg.isFlagSet(Message.Flag.SKIP_BARRIER) || msg.getDest() != null && ((msg.isFlagSet(Message.Flag.OOB) && msg.isFlagSet(Message.Flag.INTERNAL)) || holes.contains(msg.getSrc()))) return up_prot.up(msg); if(barrier_closed.get()) { final Map<Address,Message> map=msg.getDest() == null? mcast_queue : ucast_queue; map.put(msg.getSrc(), msg); return null; // queue and drop the message } Thread current_thread=Thread.currentThread(); in_flight_threads.put(current_thread, NULL); try { return up_prot.up(msg); } finally { unblock(current_thread); } }
public void up(MessageBatch batch) { // let unicast message batches pass if(batch.dest() != null && (batch.mode() == MessageBatch.Mode.OOB && batch.mode() == MessageBatch.Mode.INTERNAL) || holes.contains(batch.sender())) { up_prot.up(batch); return; } if(barrier_closed.get()) { final Map<Address,Message> map=batch.dest() == null? mcast_queue : ucast_queue; map.put(batch.sender(), batch.last().putHeader(transport.getId(),new TpHeader(batch.clusterName()))); return; // queue the last message of the batch and drop the batch } Thread current_thread=Thread.currentThread(); in_flight_threads.put(current_thread, NULL); try { up_prot.up(batch); } finally { unblock(current_thread); } }