]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Clarify Subscriptor's documentation. 4235/head
authorDavid Wells <wellsd2@rpi.edu>
Thu, 13 Apr 2017 01:27:06 +0000 (21:27 -0400)
committerDavid Wells <wellsd2@rpi.edu>
Thu, 13 Apr 2017 01:27:06 +0000 (21:27 -0400)
We no longer use volatile variables, so just state that some features
of Subscriptor are disabled when we enable threads.

include/deal.II/base/subscriptor.h
source/base/subscriptor.cc

index 37f3b1acadf125f547c3e71e625fc864c33c31e4..e46874e91b7fef8e4dcee7170accba4b48f667c1 100644 (file)
@@ -42,14 +42,17 @@ DEAL_II_NAMESPACE_OPEN
  * The utility of this class is even enhanced by providing identifying strings
  * to the functions subscribe() and unsubscribe(). In case of a hanging
  * subscription during destruction, this string will be listed in the
- * exception's message. For reasons of efficiency, these strings are handled
- * as <tt>const char*</tt>. Therefore, the pointers provided to subscribe()
- * and to unsubscribe() must be the same. Strings with equal contents will not
- * be recognized to be the same. The handling in SmartPointer will take care
- * of this.
+ * exception's message. These strings are represented as <code>const char
+ * *</code> pointers since the underlying buffer comes from (and is managed
+ * by) the run-time type information system: more exactly, these pointers are
+ * the result the function call <code>typeid(x).name()<code> where
+ * <code>x</code> is some object. Therefore, the pointers provided to
+ * subscribe() and to unsubscribe() must be the same. Strings with equal
+ * contents will not be recognized to be the same. The handling in
+ * SmartPointer will take care of this.
  *
- * @note Due to a problem with <tt>volatile</tt> declarations, this additional
- * feature is switched off if multithreading is used.
+ * @note This feature is switched off if multithreading is used (i.e., if
+ * <code>DEAL_II_WITH_THREADS</code> is on).
  *
  * @ingroup memory
  * @author Guido Kanschat, 1998 - 2005
index ce05a88509aeb176df8d7ed419c1ad71d337bb00..5b460a6629e2d5e931c9ca638afae01b7fb26341 100644 (file)
@@ -152,6 +152,8 @@ Subscriptor::subscribe(const char *id) const
     object_info = &typeid(*this);
   ++counter;
 
+  // This feature is disabled when we compile with threads: see the
+  // documentation of this class.
 #  ifndef DEAL_II_WITH_THREADS
   const char *const name = (id != 0) ? id : unknown_subscriber;
 
@@ -183,6 +185,8 @@ Subscriptor::unsubscribe(const char *id) const
 
   --counter;
 
+  // This feature is disabled when we compile with threads: see the
+  // documentation of this class.
 #  ifndef DEAL_II_WITH_THREADS
   map_iterator it = counter_map.find(name);
   AssertNothrow (it != counter_map.end(), ExcNoSubscriber(object_info->name(), name));

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.