diff --git a/include/zmq.h b/include/zmq.h index 0819beed..102f9d17 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -434,8 +434,8 @@ typedef struct zmq_poller_event_t short events; } zmq_poller_event_t; -ZMQ_EXPORT void *zmq_poller_new (); -ZMQ_EXPORT int zmq_poller_close (void *poller); +ZMQ_EXPORT void *zmq_poller_new (void); +ZMQ_EXPORT int zmq_poller_destroy (void **poller_p); ZMQ_EXPORT int zmq_poller_add (void *poller, void *socket, void *user_data, short events); ZMQ_EXPORT int zmq_poller_modify (void *poller, void *socket, short events); ZMQ_EXPORT int zmq_poller_remove (void *poller, void *socket); @@ -458,7 +458,7 @@ ZMQ_EXPORT int zmq_poller_remove_fd (void *poller, int fd); typedef void (zmq_timer_fn)(int timer_id, void *arg); ZMQ_EXPORT void *zmq_timers_new (void); -ZMQ_EXPORT int zmq_timers_destroy (void **timers); +ZMQ_EXPORT int zmq_timers_destroy (void **timers_p); ZMQ_EXPORT int zmq_timers_add (void *timers, size_t interval, zmq_timer_fn handler, void *arg); ZMQ_EXPORT int zmq_timers_cancel (void *timers, int timer_id); ZMQ_EXPORT int zmq_timers_set_interval (void *timers, int timer_id, size_t interval); diff --git a/src/zmq.cpp b/src/zmq.cpp index dd4d36ca..8f851990 100644 --- a/src/zmq.cpp +++ b/src/zmq.cpp @@ -1045,21 +1045,23 @@ int zmq_poll (zmq_pollitem_t *items_, int nitems_, long timeout_) // The poller functionality -void* zmq_poller_new () +void *zmq_poller_new (void) { zmq::socket_poller_t *poller = new (std::nothrow) zmq::socket_poller_t; alloc_assert (poller); return poller; } -int zmq_poller_close (void *poller_) +int zmq_poller_destroy (void **poller_p_) { - if (!poller_ || !((zmq::socket_poller_t*)poller_)->check_tag ()) { + void *poller = *poller_p_; + if (!poller || !((zmq::socket_poller_t*) poller)->check_tag ()) { errno = EFAULT; return -1; } - delete ((zmq::socket_poller_t*)poller_); + delete ((zmq::socket_poller_t*) poller); + *poller_p_ = NULL; return 0; } diff --git a/tests/test_poller.cpp b/tests/test_poller.cpp index ec22e837..42cb3a8f 100644 --- a/tests/test_poller.cpp +++ b/tests/test_poller.cpp @@ -134,7 +134,7 @@ int main (void) assert (event.events == ZMQ_POLLOUT); // Destory poller, sockets and ctx - rc = zmq_poller_close (poller); + rc = zmq_poller_destroy (&poller); assert (rc == 0); rc = zmq_close (sink); assert (rc == 0);