⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch3_progress_poll_elem.i

📁 刚才是说明 现在是安装程序在 LINUX环境下进行编程的MPICH安装文件
💻 I
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* *  (C) 2001 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#if !defined(MPIDI_CH3I_POLLFD_INC)#define MPIDI_CH3I_POLLFD_INC 64#endifstatic int poll_elem_alloc(int fd){    int elem;    struct pollfd * fds;    struct pollinfo * infos;    /* MT - allcation of array element and array resizing not thread safe! */        for (elem = 0; elem < poll_sz; elem++)    {	if (poll_fds[elem].fd < 0)	{	    poll_fds[elem].fd = fd;	    poll_fds[elem].events = 0;	    poll_fds[elem].revents = 0;	    if (elem + 1 > poll_num)	    {		poll_num = elem + 1;	    }	    	    return elem;	}    }    /* No more pollfd and pollinfo elements.  Resize... */    fds = MPIU_Malloc((poll_sz + MPIDI_CH3I_POLLFD_INC) *		      sizeof(struct pollfd));    if (fds == NULL)    {	return -1;    }    infos = MPIU_Malloc((poll_sz + MPIDI_CH3I_POLLFD_INC) *		      sizeof(struct pollinfo));    if (infos == NULL)    {	MPIU_Free(fds);	return -1;    }        /* Copy information from old arrays */    if (poll_sz > 0)    {	memcpy(fds, poll_fds, poll_sz * sizeof(struct pollfd));	memcpy(infos, poll_infos, poll_sz * sizeof(struct pollinfo));    }    /* Register new file descriptor */    fds[poll_sz].fd = fd;    fds[poll_sz].events = 0;    fds[elem].revents = 0;        /* Initialize new unallocated elements */    for (elem = poll_sz + 1; elem < poll_sz + MPIDI_CH3I_POLLFD_INC; elem++)    {	fds[elem].fd = -1;	fds[elem].events = 0;	fds[elem].revents = 0;    }    /* Free old arrays and set pointers to new arrays */    MPIU_Free(poll_fds);    MPIU_Free(poll_infos);    poll_fds = fds;    poll_infos = infos;    elem = poll_sz;    poll_num = poll_sz + 1;    poll_sz += MPIDI_CH3I_POLLFD_INC;    return elem;}static void poll_elem_free(int elem){    poll_fds[elem].fd = -1;    poll_fds[elem].events = 0;    poll_fds[elem].revents = 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -