summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/zmq.hpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/include/zmq.hpp b/include/zmq.hpp
index 9cae990..813535f 100644
--- a/include/zmq.hpp
+++ b/include/zmq.hpp
@@ -214,8 +214,7 @@ namespace zmq
inline ~socket_t ()
{
- int rc = zmq_close (ptr);
- assert (rc == 0);
+ close();
}
inline operator void* ()
@@ -223,6 +222,17 @@ namespace zmq
return ptr;
}
+ inline void close()
+ {
+ if(ptr == NULL)
+ // already closed
+ return ;
+ int rc = zmq_close (ptr);
+ if (rc != 0)
+ throw error_t ();
+ ptr = 0 ;
+ }
+
inline void setsockopt (int option_, const void *optval_,
size_t optvallen_)
{