Author: aconway
Date: Fri Jul 18 18:15:45 2014
New Revision: 1611745

URL: http://svn.apache.org/r1611745
Log:
No-JIRA: Get rid of throw in destructor for ~Waitable.

Modified:
    qpid/trunk/qpid/cpp/src/qpid/sys/Waitable.h

Modified: qpid/trunk/qpid/cpp/src/qpid/sys/Waitable.h
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/sys/Waitable.h?rev=1611745&r1=1611744&r2=1611745&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/sys/Waitable.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/sys/Waitable.h Fri Jul 18 18:15:45 2014
@@ -25,21 +25,15 @@
 #include "qpid/sys/ExceptionHolder.h"
 #include <assert.h>
 
-#if __cplusplus >=201103L
-#define DESTRUCTOR_THROWS noexcept(false)
-#else
-#define DESTRUCTOR_THROWS
-#endif
-
 namespace qpid {
 namespace sys {
 
 /**
  * A monitor that keeps track of waiting threads.  Threads declare a
  * ScopedWait around wait() inside a ScopedLock to be considered
- * waiters. 
+ * waiters.
  *
- * Allows waiting threads to be interrupted by an exception. 
+ * Allows waiting threads to be interrupted by an exception.
  */
 class Waitable : public Monitor {
   public:
@@ -62,7 +56,7 @@ class Waitable : public Monitor {
      *@pre Must be called inside a ScopedLock but NOT a ScopedWait.
      */
     void waitWaiters() {
-        while (waiters != 0) 
+        while (waiters != 0)
             Monitor::wait();
     }
 
@@ -79,7 +73,7 @@ class Waitable : public Monitor {
     void setException(const ExceptionHolder& e) {
         exception = e;
         notifyAll();
-        
+
     }
 
     /** True if the waitable has an exception */
@@ -93,23 +87,19 @@ class Waitable : public Monitor {
 
     /** Throws an exception if one is set before or during the wait. */
     void wait() {
-        ExCheck e(exception);
+        exception.raise();
         Monitor::wait();
+        exception.raise();
     }
 
     /** Throws an exception if one is set before or during the wait. */
     bool wait(const AbsTime& absoluteTime) {
-        ExCheck e(exception);
+        exception.raise();
         return Monitor::wait(absoluteTime);
+        exception.raise();
     }
 
   private:
-    struct ExCheck {
-        const ExceptionHolder& exception;
-        ExCheck(const ExceptionHolder& e) : exception(e) { e.raise(); }
-        ~ExCheck() DESTRUCTOR_THROWS { exception.raise(); }
-    };
-        
     size_t waiters;
     ExceptionHolder exception;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to