@@ -213,21 +213,27 @@ engine_broadcast_event (server_t *server, client_t *client, event_t event)
213213 }
214214}
215215
216- // Poll socket for activity, invoke handler on any received message.
217- // Handler must be a CZMQ zloop_fn function; receives server as arg.
216+ // Poll actor or zsock for activity, invoke handler on any received
217+ // message. Handler must be a CZMQ zloop_fn function; receives server
218+ // as arg.
218219
219220static void
220- engine_handle_socket (server_t *server, zsock_t *socket , zloop_reader_fn handler)
221+ engine_handle_socket (server_t *server, void *sock , zloop_reader_fn handler)
221222{
222223 if (server) {
223224 s_server_t *self = (s_server_t *) server;
225+ // Resolve zactor_t -> zsock_t
226+ if (zactor_is (sock))
227+ sock = zactor_sock ((zactor_t *) sock);
228+ else
229+ assert (zsock_is (sock));
224230 if (handler != NULL ) {
225- int rc = zloop_reader (self->loop , socket , handler, self);
231+ int rc = zloop_reader (self->loop , ( zsock_t *) sock , handler, self);
226232 assert (rc == 0 );
227- zloop_reader_set_tolerant (self->loop , socket );
233+ zloop_reader_set_tolerant (self->loop , ( zsock_t *) sock );
228234 }
229235 else
230- zloop_reader_end (self->loop , socket );
236+ zloop_reader_end (self->loop , ( zsock_t *) sock );
231237 }
232238}
233239
0 commit comments