interthread communication library "sigx++"

View: New views
2 Messages — Rating Filter:   Alert me  

interthread communication library "sigx++"

by klaus triendl-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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@...
http://mail.gnome.org/mailman/listinfo/libsigc-list

Re: interthread communication library "sigx++"

by Murray Cumming :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This sounds really interesting. Do post this to gtkmm-list too, so that
more people see it. Thanks.

On Sun, 2008-04-13 at 19:47 +0200, klaus triendl wrote:

> 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@...
> http://mail.gnome.org/mailman/listinfo/libsigc-list
--
murrayc@...
www.murrayc.com
www.openismus.com

_______________________________________________
libsigc-list mailing list
libsigc-list@...
http://mail.gnome.org/mailman/listinfo/libsigc-list