예제 #1
0
파일: zio.c 프로젝트: surajpkn/flux-core
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);
}
예제 #2
0
파일: zio.c 프로젝트: surajpkn/flux-core
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);
}
예제 #3
0
파일: zio.c 프로젝트: trws/flux-core
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);
}