void run_poller (void *data_) { struct poller_test_data_t *poller_test_data = (struct poller_test_data_t *) data_; void *socket = zmq_socket (poller_test_data->ctx, poller_test_data->socket_type); TEST_ASSERT_NOT_NULL (socket); void *poller = zmq_poller_new (); TEST_ASSERT_NOT_NULL (poller); TEST_ASSERT_SUCCESS_ERRNO ( zmq_poller_add (poller, socket, NULL, ZMQ_POLLIN)); zmq_atomic_counter_set (poller_test_data->counter, 1); zmq_poller_event_t event; TEST_ASSERT_FAILURE_ERRNO (ETERM, zmq_poller_wait (poller, &event, -1)); TEST_ASSERT_SUCCESS_ERRNO (zmq_poller_destroy (&poller)); // Close the socket TEST_ASSERT_SUCCESS_ERRNO (zmq_close (socket)); }
mlm_msg_t * mlm_msg_new ( const char *sender, const char *address, const char *subject, const char *tracker, uint timeout, zmsg_t *content) { assert (sender); mlm_msg_t *self = (mlm_msg_t *) zmalloc (sizeof (mlm_msg_t)); if (self) { self->sender = sender? strdup (sender): NULL; self->address = address? strdup (address): NULL; self->subject = subject? strdup (subject): NULL; self->tracker = tracker? strdup (tracker): NULL; self->expiry = zclock_time () + timeout; self->content = content; self->refcount = zmq_atomic_counter_new (); zmq_atomic_counter_set (self->refcount, 1); } return self; }