示例#1
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);
}
示例#2
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);
}
示例#3
0
文件: zio.c 项目: surajpkn/flux-core
static int zio_flux_read_cb (flux_t f, int fd, short revents, zio_t *zio)
{
    int rc;
    zio_handler_start (zio);
    rc = zio_read_cb_common (zio);
    if (rc >= 0 && zio_eof_sent (zio)) {
        zio_debug (zio, "reader detaching from flux reactor\n");
        flux_fdhandler_remove (f, fd, ZMQ_POLLIN|ZMQ_POLLERR);
        rc = zio_close (zio);
    }
    zio_handler_end (zio);
    return (rc);
}
示例#4
0
文件: zio.c 项目: surajpkn/flux-core
static int zio_zloop_read_cb (zloop_t *zl, zmq_pollitem_t *zp, zio_t *zio)
{
    int rc;
    zio_handler_start (zio);
    rc = zio_read_cb_common (zio);
    if (rc >= 0 && zio_eof_sent (zio)) {
        zio_debug (zio, "reader detaching from zloop\n");
        zloop_poller_end (zl, zp);
        rc = zio_close (zio);
    }
    zio_handler_end (zio);
    return (rc);
}
示例#5
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);
}
示例#6
0
文件: zio.c 项目: trws/flux-core
static void zio_flux_read_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_read_cb_common (zio);
    if (rc >= 0 && zio_eof_sent (zio)) {
        zio_debug (zio, "reader detaching from flux reactor\n");
        flux_watcher_stop (w);
        rc = zio_close (zio);
    }
    zio_handler_end (zio);
    if (rc < 0)
        flux_reactor_stop_error (r);
}