I would like to announce my work on "sigx++", a c++ interthread communication library on top of libsigc++ and glibmm.
It features: * dispatcher based interthread communication * typesafe functor adaptors to execute functions in the context of another thread (send messages inbetween threads) * threadsafe wrappers for signals and connections * deadlock detection for synchronous messages * ready-to-use with glibmm/gtkmm based programs More specifically: * every variant of interthread communication is done via a dispatcher under the hood; This means that communication except for the dispatcher and synchronous messages is lock-free; instead of making functors, signals and connections threadsafe by themselves they rather have wrappers that offer the same interface and send a message to the concrete signal or connection in the context of another thread (i.e. to the thread that owns the signals). * the dispatcher mechanism itself is generic such that multiple dispatcher implementations can be plugged in * e.g. sigx++ out of the box extends the Glib::Dispatcher in a way that not only nullary callbacks can be executed but callbacks with an arbitrary number of arguments * for sending messages between threads, there exists a "tunnel" functor adaptor adapting functions to be executed in the context of another thread * sigx++ introduces a "dispatchable" concept, i.e. a class that just can be part of interthread communication * sigx++ introduces a "threadable" concept, i.e. a class executed as a thread * glibmm based implementations of dispatchable/threadable that create and set up a glibmm thread context allow sigx++ to be used directly within gtkmm programs sigx++ started from ideas of Tim Mayberry's project "glibmmx" and some discussions with him helped me to bring sigx++ to its current level. I personally consider sigx++ as completed regarding its functionality except the support for system signals; still some work needs to be done though. If you are interested in the library you can download it at http://triendl.info/sigx The example and test programs should give an impression how sigx++ can be used. Questions and comments are welcome and I hope for constructive discussions! Klaus Triendl _______________________________________________ libsigc-list mailing list libsigc-list@gnome.org http://mail.gnome.org/mailman/listinfo/libsigc-list