예제 #1
0
persistent_req_t *PR_Busca_request (PR_Queue_t * cua, MPI_Request* reqid)
{
  PR_Queue_t *element_cua;

  element_cua = PR_QueueSearch (cua, reqid);
  if (element_cua == NULL)
    return (NULL);
  return (element_cua->request);
}
void PR_Elimina_request (PR_Queue_t * cua, MPI_Request* reqid)
{
  PR_Queue_t *element_cua;

  element_cua = PR_QueueSearch (cua, reqid);
  if (element_cua == NULL)
    return;
  free (element_cua->request);
  REMOVE_ITEM (element_cua);
  free (element_cua);
}
예제 #3
0
void PR_Elimina_request (PR_Queue_t * cua, MPI_Request* reqid)
{
  PR_Queue_t *element_cua;

#if defined(MPI_HAS_INIT_THREAD_C) || defined(MPI_HAS_INIT_THREAD_F)
  pthread_mutex_lock(&pr_lock);
#endif
  element_cua = PR_QueueSearch (cua, reqid);
  if (element_cua == NULL)
  {
#if defined(MPI_HAS_INIT_THREAD_C) || defined(MPI_HAS_INIT_THREAD_F)
  pthread_mutex_unlock(&pr_lock);
#endif
    return;
  }
  free (element_cua->request);
  REMOVE_ITEM (element_cua);
  free (element_cua);
#if defined(MPI_HAS_INIT_THREAD_C) || defined(MPI_HAS_INIT_THREAD_F)
  pthread_mutex_unlock(&pr_lock);
#endif
}