/* * call-seq: * socket.close() -> nil * * Destroys the 0MQ socket. All active connections on the socket shall be * terminated, and resources associated with the socket shall be released. * Any outstanding messages sent with send() but not yet physically sent * to the network shall be dropped. Likewise, any outstanding messages * physically received from the network but not yet received by the * application with recv() shall also be dropped. */ static VALUE socket_close (VALUE self_) { void * s = NULL; Data_Get_Struct (self_, void, s); if (s != NULL) { int rc = zmq_close (s); if (rc != 0) { rb_raise (rb_eRuntimeError, "%s", zmq_strerror (zmq_errno ())); return Qnil; } DATA_PTR (self_) = NULL; } return Qnil; }