static int zio_zloop_writer_cb (zloop_t *zl, zmq_pollitem_t *zp, zio_t *zio) { int rc; zio_handler_start (zio); rc = zio_writer_cb (zio); if (!zio_write_pending (zio)) zloop_poller_end (zl, zp); zio_handler_end (zio); return (rc); }
static int zio_flux_writer_cb (flux_t f, int fd, short revents, zio_t *zio) { int rc; zio_handler_start (zio); rc = zio_writer_cb (zio); if (!zio_write_pending (zio)) flux_fdhandler_remove (f, fd, ZMQ_POLLOUT | ZMQ_POLLERR); zio_handler_end (zio); return (rc); }
static void zio_flux_writer_cb (flux_reactor_t *r, flux_watcher_t *w, int revents, void *arg) { zio_t *zio = arg; int rc; zio_handler_start (zio); rc = zio_writer_cb (zio); if (!zio_write_pending (zio)) flux_watcher_stop (w); zio_handler_end (zio); if (rc < 0) flux_reactor_stop_error (r); }