[reSIProcate] Optimization of Random class, threads and epoll
Hi folks,
There are some new features in resip trunk:
- The rutil/Random class has some new options to support better random number generation, especially for multi-threaded applications running on multiple core machines. See http://www.resiprocate.org/Random_number_generation for details. That page also includes some interesting performance results. There are (different) improvements available for both Windows and POSIXs. The new Windows support is based upon work by jgeras at ctpc. The default behavior hasn't changed.
- The callback-based event loop mechanism (that was originally created to provide epoll support) now has a select() based implementation and thus can be used on all platforms. This allows applications to construct the stack in a single style for all platforms, and take advantage of epoll on those platforms that support it. See http://www.resiprocate.org/SipStack_Event_Loop for more information. That page also includes some Linux-based performance results.
- The POSIX configure script has been extended for both the Random number generation and epoll support. See https://www.resiprocate.org/Configuration_Options for details.
- The rutil/Data class has some new low-level methods for higher performance operation. Most users wont want to use these methods, but they help avoid unneeded copies in certain cases.
- Fix for contrib/ares (aka resip-ares) to correctly handle IPv6 for certain initialization paths. Credits to ximalaya <ims3g@xxxxxxx> for finding and fixing this one.
Regards,
Kennard