C3D Toolkit  Kernel - 107448, Vision - 190805.107448
Файл tool_mutex.h

Реализация блокировок на базе системных механизмов синхронизации и OpenMP блокировок.details Реализация блокировок (в том числе блокировки в области видимости) на базе системных механизмов синхронизации и OpenMP блокировок.
. Подробнее...

#include <math_define.h>

Классы

class  CommonMutex
 Класс блокировки. Подробнее...
 
class  ParallelRegionGuard
 Защитник параллельного региона в области видимости. Подробнее...
 
class  ScopedLock
 Блокировка в области видимости. Может принимать нулевой указатель на мьютекс. Блокировка происходит, если указатель на мьютекс ненулевой и код выполняется параллельно. Подробнее...
 
class  ScopedRecursiveLock
 Рекурсивная блокировка в области видимости. Может принимать нулевой указатель на мьютекс. Блокировка происходит, если указатель на мьютекс ненулевой и код выполняется параллельно. Подробнее...
 
class  MbSyncItem
 Базовый объект синхронизации с отложенной инициализацией. Подробнее...
 
class  MbNestSyncItem
 Базовый объект синхронизации с отложенной инициализацией, поддерживающий множественные блокировки. Подробнее...
 
class  MbPersistentSyncItem
 Базовый объект, предоставляющий средства синхронизации. Подробнее...
 
class  MbPersistentNestSyncItem
 Базовый объект синхронизации, поддерживающий множественные блокировки. Подробнее...
 

Макросы

#define CommonRecursiveMutex   CommonMutex
 Одинаковая реализация CommonMutex и CommonRecursiveMutex.
 
#define ENTER_PARALLEL(useParallel)   if ( useParallel ) EnterParallelRegion();
 Macros for notification of entering and exiting a parallel block. Подробнее...
 
#define EXIT_PARALLEL(useParallel)   if ( useParallel ) ExitParallelRegion();
 Если useParallel == true, нотифицирует ядро о выходе из параллельного блока кода. Если useParallel == true, нотифицирует ядро о выходе из параллельного блока кода. Вызов должен стоять после окончания параллельного блока. Использование макроса значительно ускоряет параллельные циклы OpenMP.
 

Функции

void EnterParallelRegion ()
 Функция нотифицирует ядро о входе в параллельный блок кода. Вызов функции должен стоять перед началом параллельного блока.
 
void ExitParallelRegion ()
 Функция нотифицирует ядро о выходе из параллельного блока кода. Вызов функции должен стоять после окончания параллельного блока.
 
bool IsInParallel ()
 Функция определяет, выполняется ли код параллельно.
 

Подробное описание

Реализация блокировок на базе системных механизмов синхронизации и OpenMP блокировок.

details Реализация блокировок (в том числе блокировки в области видимости) на базе системных механизмов синхронизации и OpenMP блокировок.
.

Макросы

◆ ENTER_PARALLEL

#define ENTER_PARALLEL (   useParallel)    if ( useParallel ) EnterParallelRegion();

Macros for notification of entering and exiting a parallel block.

Если useParallel == true, нотифицирует ядро о входе в параллельный блок кода. Если useParallel == true, нотифицирует ядро о входе в параллельный блок кода. Вызов должен стоять перед началом параллельного блока (перед прагмой OpenMP). Использование макроса значительно ускоряет параллельные циклы OpenMP.