示例#1
0
文件: zctx.c 项目: azverkan/czmq
void
zctx__socket_destroy (zctx_t *self, void *socket)
{
    assert (self);
    assert (socket);
    zsockopt_set_linger (socket, self->linger);
    zmq_close (socket);
    zlist_remove (self->sockets, socket);
}
示例#2
0
文件: zctx.c 项目: kiml/czmq
void
zctx_destroy (zctx_t **self_p)
{
    assert (self_p);
    if (*self_p) {
        zctx_t *self = *self_p;
        while (zlist_size (self->sockets)) {
            void *socket = zlist_first (self->sockets);
            zsockopt_set_linger (socket, self->linger);
            zmq_close (socket);
            zlist_remove (self->sockets, socket);
        }
        zlist_destroy (&self->sockets);
        if (self->main && self->context)
            zmq_term (self->context);
        free (self);
        *self_p = NULL;
    }
}