long seq=tuple.getVal1(); if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) oob_batch.add(msg);
if(loopback) { // sent by self if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) deliver(msg, sender, hdr.seqno, "OOB message");
long seq=tuple.getVal1(); if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) oob_batch.add(msg);
/** Called when the sender of a message is the local member. In this case, we don't need to add the message * to the table as the sender already did that */ protected void handleDataReceivedFromSelf(final Address sender, long seqno, Message msg) { Entry entry=send_table.get(sender); if(entry == null || entry.state() == State.CLOSED) { log.warn("%s: entry not found for %s; dropping message", local_addr, sender); return; } update(entry, 1); final Table<Message> win=entry.msgs; // An OOB message is passed up immediately. Later, when remove() is called, we discard it. This affects ordering ! // http://jira.jboss.com/jira/browse/JGRP-377 if(msg.isFlagSet(Message.Flag.OOB)) { msg=win.get(seqno); // we *have* to get a message, because loopback means we didn't add it to win ! if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) deliverMessage(msg, sender, seqno); // we don't steal work if the message is internal (https://issues.jboss.org/browse/JGRP-1733) if(msg != null && msg.isFlagSet(Message.Flag.INTERNAL)) { processInternalMessage(win, sender); return; } } removeAndDeliver(win, sender); }
long seq=tuple.getVal1(); if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) oob_batch.add(msg);
if(loopback) { // sent by self if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) deliver(msg, sender, hdr.seqno, "OOB message");
long seq=tuple.getVal1(); if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) oob_batch.add(msg);
/** Called when the sender of a message is the local member. In this case, we don't need to add the message * to the table as the sender already did that */ protected void handleDataReceivedFromSelf(final Address sender, long seqno, Message msg) { Entry entry=send_table.get(sender); if(entry == null || entry.state() == State.CLOSED) { log.warn("%s: entry not found for %s; dropping message", local_addr, sender); return; } update(entry, 1); final Table<Message> win=entry.msgs; // An OOB message is passed up immediately. Later, when remove() is called, we discard it. This affects ordering ! // http://jira.jboss.com/jira/browse/JGRP-377 if(msg.isFlagSet(Message.Flag.OOB)) { msg=win.get(seqno); // we *have* to get a message, because loopback means we didn't add it to win ! if(msg != null && msg.isFlagSet(Message.Flag.OOB) && msg.setTransientFlagIfAbsent(Message.TransientFlag.OOB_DELIVERED)) deliverMessage(msg, sender, seqno); // we don't steal work if the message is internal (https://issues.jboss.org/browse/JGRP-1733) if(msg != null && msg.isFlagSet(Message.Flag.INTERNAL)) { processInternalMessage(win, sender); return; } } removeAndDeliver(win, sender); }