コード例 #1
0
ファイル: vhost_client.c プロジェクト: drewlu/vapp
static int _kick_client(FdNode* node)
{
    VhostClient* vhost_client = (VhostClient*) node->context;
    int kickfd = node->fd;
    ssize_t r;
    uint64_t kick_it = 0;

    r = read(kickfd, &kick_it, sizeof(kick_it));

    if (r < 0) {
        perror("recv kick");
    } else if (r == 0) {
        fprintf(stdout, "Kick fd closed\n");
        del_fd_list(&vhost_client->client->fd_list, FD_READ, kickfd);
    } else {
        int idx = VHOST_CLIENT_VRING_IDX_RX;
#if 0
        fprintf(stdout, "Got kick %ld\n", kick_it);
#endif

        process_avail_vring(&vhost_client->vring_table, idx);
    }

    return 0;
}
コード例 #2
0
int my_close(int fd, int iline, char *pcfile)
{
	int r;
	r = save_close(fd);
	if (r == 0) del_fd_list(&g_pfdheader, fd, iline, pcfile);
	return r;
}