diff options
-rw-r--r-- | include/zmq.hpp | 14 |
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_) { |