I’ve finally released the next stable version of omniEvents. This incorporates the huge number of bugfixes. Thanks mostly to Dirk Siebnich’s relentless testing, I’m confident that this version of omniEvents is by far the most stable and robust yet.
Full release notes: Version 2.6.2
Dirk wanted to use omniEvents as part of a CORBA framework he was developing for his employer. He wanted to use the (previously little tested)
libomniEvents library, and he needed to be able to safely unload the library after he’d finished with it. He found crashing bugs that I tracked to numerous small memory leaks and incorrect cleanups. These errors had never been noticed before because omniEvents is usually used as a server, so shutdown didn’t need to be really clean.
Ironically, Dirk’s project was cancelled just as we were finishing the testing. He finished the work on his own time.
We did find one problem that is not fixed in this release. OmniEvents still uses the
SINGLE_THREAD_MODEL which we discovered is not a good idea. I’ve already refactored the code to use the normal threading model, but the changes aren’t included in this release. Despite Dirk’s testing, I decided that they were too far reaching to be included in the stable branch. Consequently it is possible to get v2.6.2 to deadlock, but only by creating and destroying channels repeatedly for many hours!