Release Notes: This version adds a couple of gateway subclasses that keep track of the number of bytes currently in their output queues, adds a couple of additional callbacks to the ReflectServer class, and fixes a couple of minor bugs.
Release Notes: This release adds two more implementations of the SocketMultiplexer class, one based on BSD's kqueue()/kevent(), and another based on Linux's epoll().
Release Notes: This release adds a SocketMultiplexer class which hides the details of select() and poll() behind a simpler and more consistent API. It also fixes a bug in Message::FindFlat() which could cause it to return incorrect results when called on locally-created Messages containing FlatCountableRef-referenced objects.
Release Notes: This release adds optional support for basing the ReflectServer event loop around poll() instead of select. It also makes the socket-pair in the Thread class optional, adds a couple of new methods to the Queue class, and makes the multicast API enabled by default.
Release Notes: This version updates the code to compile cleanly under Android and clang++2.1, and adds an object counting mechanism (via the new CountedObject<T> template), making it is possible to see how many of each type of object your program is using at any given time. Some minor bugs were fixed, and the Python implementation of Message.PrintToStream() now prints sub-Messages recursively (as the C++ implementation always has).
Release Notes: This release adds a ThreadPool class, a mechanism that allows a Thread object's internal thread to check its current stack usage, better EINTR handling for send() and recv() calls, and a couple of other minor bugfixes and enhancements.
Release Notes: This releases enables IPv6 support by default. It can be disabled with -DMUSCLE_AVOID_IPV6. A new Qt example called qt_advanced_example was added. It demonstrates how to run a multi-threaded MUSCLE server inside a thread in a Qt GUI application, and how to make the GUI communicate with it. Major updates were made to the README.TXT file and the DOxygen documentation.
Release Notes: This minor release reduces the size of the UDP packets sent by PacketTunnelIOGateway to fit within the standard Ethernet MTU, fixes a few other minor bugs, and also gets rid of some compiler warnings. This version also allows you optionally specify the real-time Linux scheduler (SCHED_RR or SCHED_FIFO) you want the program to run under (Linux only).
Release Notes: This version adds a new Qt-based build of muscled (qt_muscled), enhances the qt_example application, and improves MingW compiler compatibility. It also adds a handful of minor new API features, such as an IsSymLink() method in the FilePathInfo class, the ability to set the stack size of spawned Threads, and an InsertItemAtSortedPosition() method in the Queue class. Finally, this version modifies the DataNode class to store its index as a Queue of DataNodeRef objects rather than a Queue of pointers-to-String, to avoid any potential dangling-pointer issues.
Release Notes: This is a very minor release that adds some additional convenience methods to the String and Queue classes, adds some debugging support to the StorageReflectSession class, and fixes a crash bug in hexterm.