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

📄 ch3_free_mem.c

📁 mpi并行计算的c++代码 可用vc或gcc编译通过 可以用来搭建并行计算试验环境
💻 C
字号:
/* -*- Mode: C; c-basic-offset:4 ; -*- *//* *  (C) 2001 by Argonne National Laboratory. *      See COPYRIGHT in top-level directory. */#include "mpidi_ch3_impl.h"/* * MPIDI_CH3_Free_mem() */#undef FUNCNAME#define FUNCNAME MPIDI_CH3_Free_mem#undef FCNAME#define FCNAME MPIDI_QUOTE(FUNCNAME)int MPIDI_CH3_Free_mem(void *addr){    int mpi_errno = MPI_SUCCESS, found;    MPIDI_CH3I_Alloc_mem_list_t *prev_ptr, *cur_ptr;    MPIDI_STATE_DECL(MPID_STATE_MPIDI_CH3_FREE_MEM);    MPIDI_FUNC_ENTER(MPID_STATE_MPIDI_CH3_FREE_MEM);    /* check whether it was registered when allocated */    prev_ptr = cur_ptr = MPIDI_CH3I_Alloc_mem_list_head;    found = 0;    while (cur_ptr != NULL)    {        if (addr == cur_ptr->ptr)	{            found = 1;	    mpi_errno = ibu_nocache_deregister_memory(addr, cur_ptr->length, &cur_ptr->mem);	    /* --BEGIN ERROR HANDLING-- */            if (mpi_errno != MPI_SUCCESS)	    {		mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER, "**fail", 0);		goto fn_exit;	    }	    /* --END ERROR HANDLING-- */	    /* remove this entry from the list */	    if (cur_ptr == MPIDI_CH3I_Alloc_mem_list_head)                MPIDI_CH3I_Alloc_mem_list_head = cur_ptr->next;            else                 prev_ptr->next = cur_ptr->next;            MPIU_Free(cur_ptr);            break;        }        prev_ptr = cur_ptr;        cur_ptr = cur_ptr->next;    }    if (!found)    {	MPIU_Free(addr);    } fn_exit:    MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3_FREE_MEM);    return mpi_errno;}

⌨️ 快捷键说明

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