- Added ConcurrentLinkedBlockingQueue2
- Added TP.SenderSendsBundler
- Added dont_bundle option

- Added UnicastTestTcp (TCP based equivalent of UnicastTest)

- Got rid of inefficient Data classes i UnicastTest*

- Added UUID.getByName()

- Set TCP.tcp_nodelay=false by default

- Added PERF protocol
- Changed Average to do round-robin storing of samples rather than random

- Added UnicastTestSharedLoopback to test unicast msg perf between 2 members within the same process (no network comm)

- Added Pool and PoolTest

- Creating an output stream per bundler

- Setting use_send_queue to false by default

- Added ByteBuffer{Input,Output}Stream and test

- Added TCPConnectionMap.flush(dest)

- Reverted used_flush_queues to true (default)
ns
typo
- Added get_before_put property to UPerf (mimics UPerf2), removed UPerf2
- Added printHeaders() to MessageBatch
- Before an OOB|INTERNAL thread returns, it checks if there are more msgs and submits a task to the regular thread pool to handle them if true (https://issues.jboss.org/browse/JGRP-1732)
- NAKACK2: sending +OOB / -DONT_BUNDLE messages up in a batch
- UNICAST3: passing +OOB / -DONT_BUNDLE messages up in a batch
- UNICAST3: conditional creation of oob_batch
- Added Filter and changed Table.removeMany() to include a filter
- OOB batches and messages now add a dummy message into the table (https://issues.jboss.org/browse/JGRP-1767)
- OOB messages are skipped when removing messages from the table
- Table.add(list): only resize once before adding list of messages (https://issues.jboss.org/browse/JGRP-1769)
- Remover: only increment num_results if element passes the filter
- Table.removeMany() now nulls rows when all elements of a row have been removed (and nulled) (https://issues.jboss.org/browse/JGRP-1769)
Fix typo in root README
Move position, not limit, to skip bytes in ByteBufferInputStream
Map BufferUnderflowException to EOFException in ByteBufferInputStream
Merge pull request #117 from justinsb/fix_skip

Move position, not limit, to skip bytes in ByteBufferInputStream
Merge pull request #119 from justinsb/bytebufferinputstream_eof

Map BufferUnderflowException to EOFException in ByteBufferInputStream
Use bitmask trick to read unsigned
Removed use of DatagramSocket.isClosed() (https://issues.jboss.org/browse/JGRP-1780)
- Bits.writeLong() and Bits.writeLongSequence() now don't use a temp byte buffer anymore (https://issues.jboss.org/browse/JGRP-1774)
- Moved Util.read/writeLong(Sequence)() from Util to Bits
- (https://issues.jboss.org/browse/JGRP-1774)
- Added description for all targets in build.xml
- Removing a temp byte buffer when serializing strings (https://issues.jboss.org/browse/JGRP-1782)

- Sending RSVP ACK as OOB
- Correct use of Message.getRawBuffer() with Message.getOffset() and Message.getLength()
- Replaced incorrect msg.getBuffer() with msg.getOffset() and msg.getLength() with msg.getRawBuffer()
- Added position() to ExposedByteArrayOutputStream
- Replaced incorrect msg.getBuffer() with msg.getOffset() and msg.getLength() with msg.getRawBuffer()
- Message: write headers first, then payload (https://issues.jboss.org/browse/JGRP-1781)
- Message: added a readFromSkipPayload() method which skips the payload and returns the position at which the payload starts
- TP$MyHandler now skips reading of buffer into Message and instead refers to the copied byte buffer (https://issues.jboss.org/browse/JGRP-1773)
- Message.readFromSkipPayload() now returns -1 again if the buffer is not set
- Added FD_ALL2 (https://issues.jboss.org/browse/JGRP-1783)
- Added TimeService and test (https://issues.jboss.org/browse/JGRP-1763)
- Added TimeService and getTimeService() to TP
- Updated TCP to use TimeService for TCPConnectionMap$TCPConnection sends and receives
- UNICAST3 uses TimeService
- FD_ALL uses TimeService if configured (use_time_service) (default=true)
- Moved sending of discovery request out of synchronized scope
- Implementing Closeable
- TP$TransferQueueBundler.stop() now clears the queue and makes sure a subsequent start() doesn't use the current bundler_thread (which was interrupted and will terminate)
- Discovery now uses OOB | DONT_BUNDLE | INTERNAL to send discovery requests and responses. This ensures that requests and responses don't get stuck in the middle of a MessageBatch
ns
ns
- Changed timer.min/max_threads from  4/10 to 2/4