1
1

coll/libnbc: add some comments on how locks are used

no code change

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
Gilles Gouaillardet 2016-11-30 17:29:21 +09:00
родитель d4c4babcc0
Коммит 15098161a3
2 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

@ -75,8 +75,8 @@ struct ompi_coll_libnbc_component_t {
opal_free_list_t requests; opal_free_list_t requests;
opal_list_t active_requests; opal_list_t active_requests;
int32_t active_comms; int32_t active_comms;
opal_atomic_lock_t progress_lock; opal_atomic_lock_t progress_lock; /* protect from recursive calls */
opal_mutex_t lock; opal_mutex_t lock; /* protect access to the active_requests list */
}; };
typedef struct ompi_coll_libnbc_component_t ompi_coll_libnbc_component_t; typedef struct ompi_coll_libnbc_component_t ompi_coll_libnbc_component_t;

Просмотреть файл

@ -263,8 +263,11 @@ ompi_coll_libnbc_progress(void)
ompi_coll_libnbc_request_t* request, *next; ompi_coll_libnbc_request_t* request, *next;
int res; int res;
/* return if invoked recursively */
if (opal_atomic_trylock(&mca_coll_libnbc_component.progress_lock)) return 0; if (opal_atomic_trylock(&mca_coll_libnbc_component.progress_lock)) return 0;
/* process active requests, and use mca_coll_libnbc_component.lock to access the
* mca_coll_libnbc_component.active_requests list */
OPAL_THREAD_LOCK(&mca_coll_libnbc_component.lock); OPAL_THREAD_LOCK(&mca_coll_libnbc_component.lock);
OPAL_LIST_FOREACH_SAFE(request, next, &mca_coll_libnbc_component.active_requests, OPAL_LIST_FOREACH_SAFE(request, next, &mca_coll_libnbc_component.active_requests,
ompi_coll_libnbc_request_t) { ompi_coll_libnbc_request_t) {