glibmm r673 - in trunk: . glib/src



Author: murrayc
Date: Wed Jun 18 07:36:09 2008
New Revision: 673
URL: http://svn.gnome.org/viewvc/glibmm?rev=673&view=rev

Log:
2008-06-17  Chris Vine <chris cvine freeserve co uk>

* glib/src/thread.hg: document that the slot object passed to
Glib::Thread::create() should not represent a non-static method of
a class derived from sigc::trackable.
See bug #512348.


Modified:
   trunk/ChangeLog
   trunk/glib/src/thread.hg

Modified: trunk/glib/src/thread.hg
==============================================================================
--- trunk/glib/src/thread.hg	(original)
+++ trunk/glib/src/thread.hg	Wed Jun 18 07:36:09 2008
@@ -174,6 +174,7 @@
 public:
   class Exit;
 
+  //See http://bugzilla.gnome.org/show_bug.cgi?id=512348 about the sigc::trackable issue.
   /** Creates a new thread with the priority <tt>THREAD_PRIORITY_NORMAL</tt>.
    * If @a joinable is @c true, you can wait for this thread's termination by
    * calling join().  Otherwise the thread will just disappear, when ready.
@@ -182,6 +183,10 @@
    * pass additional arguments using sigc::bind().  If the thread was created
    * successfully, it is returned, otherwise a ThreadError exception is thrown.
    *
+   * Because sigc::trackable is not thread safe, if the slot represents a
+   * non-static class method (that is, it is created by sigc::mem_fun()), the
+   * class concerned should not derive from sigc::trackable.
+   *
    * @param slot A slot to execute in the new thread.
    * @param joinable Should this thread be joinable?
    * @return The new Thread* on success.
@@ -189,6 +194,7 @@
    */
   static Thread* create(const sigc::slot<void>& slot, bool joinable);
 
+  //See http://bugzilla.gnome.org/show_bug.cgi?id=512348 about the sigc::trackable issue.
   /** Creates a new thread with the priority @a priority. The stack gets the
    * size @a stack_size or the default value for the current platform, if
    * @a stack_size is <tt>0</tt>.
@@ -204,6 +210,10 @@
    * pass additional arguments using sigc::bind().  If the thread was created
    * successfully, it is returned.
    *
+   * Because sigc::trackable is not thread safe, if the slot represents a
+   * non-static class method (that is, it is created by sigc::mem_fun()), the
+   * class concerned should not derive from sigc::trackable.
+   *
    * @note It is not guaranteed, that threads with different priorities really
    * behave accordingly.  On some systems (e.g. Linux) only root can increase
    * priorities.  On other systems (e.g. Solaris) there doesn't seem to be



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]