KasperskyOS Community Edition 1.1
[Topic api_sync]

KosCondvarBroadcast()

Функция объявлена в файле kos/condvar.h.

void KosCondvarBroadcast(KosCondvar *condvar);

Функция пробуждает все потоки из очереди потоков, заблокированных посредством условной переменной condvar.

В начало
[Topic kos_condvar_broadcast]

KosCondvarDeinit()

Функция объявлена в файле kos/condvar.h.

void KosCondvarDeinit(KosCondvar *condvar);

Функция деинициализирует условную переменную condvar.

В начало
[Topic kos_condvar_deinit]

KosCondvarInit()

Функция объявлена в файле kos/condvar.h.

void KosCondvarInit(KosCondvar *condvar);

Функция инициализирует условную переменную condvar.

В начало
[Topic kos_condvar_init]

KosCondvarSignal()

Функция объявлена в файле kos/condvar.h.

void KosCondvarSignal(KosCondvar *condvar);

Функция пробуждает один поток из очереди потоков, заблокированных посредством условной переменной condvar.

В начало
[Topic kos_condvar_signal]

KosCondvarWait()

Функция объявлена в файле kos/condvar.h.

Retcode KosCondvarWait(KosCondvar *condvar, KosMutex *mutex);

Функция блокирует исполнение текущего потока посредством условной переменной condvar, пока он не будет пробужден с помощью KosCondvarSignal() или KosCondvarBroadcast().

mutex – мьютекс, который будет использован для защиты критической секции.

В случае успеха функция возвращает rcOk.

В начало
[Topic kos_condvar_wait]

KosCondvarWaitTimeout()

Функция объявлена в файле kos/condvar.h.

Retcode KosCondvarWaitTimeout(KosCondvar *condvar, KosMutex *mutex,

rtl_uint32_t mdelay);

Функция блокирует исполнение текущего потока посредством условной переменной condvar, пока он не будет пробужден с помощью KosCondvarSignal() или KosCondvarBroadcast(). Поток блокируется не более чем на mdelay миллисекунд.

  • mutex – мьютекс, который будет использован для защиты критической секции.

Функция возвращает rcOk в случае успеха и rcTimeout, если время ожидания истекло.

В начало
[Topic kos_condvar_wait_timeout]

KosEventDeinit()

Функция объявлена в файле kos/event.h.

void KosEventDeinit(KosEvent *event);

Функция освобождает ресурсы, связанные с событием event (уничтожает событие).

В начало
[Topic kos_event_deinit]

KosEventInit()

Функция объявлена в файле kos/event.h.

void KosEventInit(KosEvent *event);

Функция создает событие event.

Созданное событие находится в несигнальном состоянии.

В начало
[Topic kos_event_init]

KosEventReset()

Функция объявлена в файле kos/event.h.

void KosEventReset(KosEvent *event);

Функция переводит событие event в несигнальное состояние (сбрасывает событие).

В начало
[Topic kos_event_reset]

KosEventSet()

Функция объявлена в файле kos/event.h.

void KosEventSet(KosEvent *event);

Функция переводит событие event в сигнальное состояние (сигнализирует событие) и таким образом пробуждает все потоки, ожидающие его.

В начало
[Topic kos_event_set]

KosEventWait()

Функция объявлена в файле kos/event.h.

void KosEventWait(KosEvent *event, rtl_bool reset);

Функция ожидает перехода события в сигнальное состояние.

Параметр reset указывает, следует ли автоматически сбросить событие при успешном завершении ожидания.

Функция возвращает rcOk в случае успеха.

В начало
[Topic kos_event_wait]

KosEventWaitTimeout()

Функция объявлена в файле kos/event.h.

Retcode KosEventWaitTimeout(KosEvent *event, rtl_bool reset,

rtl_uint32_t msec);

Функция ожидает перехода события в сигнальное состояние в течение msec миллисекунд.

Параметр reset указывает, следует ли автоматически сбросить событие при успешном завершении ожидания.

Функция возвращает rcOk в случае успеха и rcTimeout при превышении таймаута.

В начало
[Topic kos_event_wait_timeout]

KosMutexDeinit()

Функция объявлена в файле kos/mutex.h.

void KosMutexDeinit(KosMutex *mutex);

Функция уничтожает мьютекст mutex.

В начало
[Topic kos_mutex_deinit]

KosMutexInit()

Функция объявлена в файле kos/mutex.h.

void KosMutexInit(KosMutex *mutex);

Функция выполняет инициализацию мьютекса mutex в незаблокированном состоянии.

В начало
[Topic kos_mutex_init]

KosMutexInitEx()

Функция объявлена в файле kos/mutex.h.

void KosMutexInitEx(KosMutex *mutex, int recursive);

Функция выполняет инициализацию мьютекса mutex в незаблокированном состоянии.

Для инициализации рекурсивного мьютекса в параметр recursive нужно передать значение 1.

В начало
[Topic kos_mutex_init_ex]

KosMutexLock()

Функция объявлена в файле kos/mutex.h.

void KosMutexLock(KosMutex *mutex);

Функция захватывает мьютекс mutex.

Если мьютекс уже захвачен, поток блокируется в ожидании его разблокировки.

В начало
[Topic kos_mutex_lock]

KosMutexLockTimeout()

Функция объявлена в файле kos/mutex.h.

Retcode KosMutexLockTimeout(KosMutex *mutex, rtl_uint32_t mdelay);

Функция захватывает мьютекс mutex.

Если мьютекс уже захвачен, поток блокируется на mdelay миллисекунд в ожидании его разблокировки.

Функция возвращает rcOk в случае успеха и rcTimeout, если время ожидания истекло.

В начало
[Topic kos_mutex_lock_timeout]

KosMutexTryLock()

Функция объявлена в файле kos/mutex.h.

Retcode KosMutexTryLock(KosMutex *mutex);

Функция делает попытку захвата мьютекса mutex.

Функция возвращает rcOk, если мьютекс удалось захватить и rcBusy, если мьютекс не удалось захватить, так как он уже захвачен.

В начало
[Topic kos_mutex_try_lock]

KosMutexUnlock()

Функция объявлена в файле kos/mutex.h.

void KosMutexUnlock(KosMutex *mutex);

Функция разблокирует мьютекс mutex.

Для разблокировки рекурсивного мьютекса нужно сделать столько вызовов KosMutexUnlock(), сколько раз рекурсивный мьютекс был заблокирован.

В начало
[Topic kos_mutex_unlock]

KosRWLockDeinit()

Функция объявлена в файле kos/rwlock.h.

void KosRWLockDeinit(KosRWLock *rwlock);

Функция деинициализирует блокировку чтения-записи rwlock.

В начало
[Topic kos_rw_lock_deinit]

KosRWLockInit()

Функция объявлена в файле kos/rwlock.h.

void KosRWLockInit(KosRWLock *rwlock);

Функция инициализирует блокировку чтения-записи rwlock.

В начало
[Topic kos_rw_lock_init]

KosRWLockRead()

Функция объявлена в файле kos/rwlock.h.

void KosRWLockRead(KosRWLock *rwlock);

Функция блокирует потоки чтения.

В начало
[Topic kos_rw_lock_read]

KosRWLockTryRead()

Функция объявлена в файле kos/rwlock.h.

Retcode KosRWLockTryRead(KosRWLock *rwlock);

Функция делает попытку блокировки потоков чтения.

В случае успеха функция возвращает rcOk.

В начало
[Topic kos_rw_lock_try_read]

KosRWLockTryWrite()

Функция объявлена в файле kos/rwlock.h.

Retcode KosRWLockTryWrite(KosRWLock *rwlock);

Функция делает попытку блокировки потоков записи.

В случае успеха функция возвращает rcOk.

В начало
[Topic kos_rw_lock_try_write]

KosRWLockUnlock()

Функция объявлена в файле kos/rwlock.h.

void KosRWLockUnlock(KosRWLock *rwlock);

Функция снимает блокировку чтения-записи rwlock.

В начало
[Topic kos_rw_lock_unlock]

KosRWLockWrite()

Функция объявлена в файле kos/rwlock.h.

void KosRWLockWrite(KosRWLock *rwlock);

Функция блокирует потоки записи.

В начало
[Topic kos_rw_lock_write]

KosSemaphoreDeinit()

Функция объявлена в файле kos/semaphore.h.

Retcode KosSemaphoreDeinit(KosSemaphore *semaphore);

Функция уничтожает семафор semaphore, инициализированный ранее функцией KosSemaphoreInit().

Безопасно уничтожать инициализированный семафор, на котором в настоящее время нет заблокированных потоков. Эффект уничтожения семафора, на котором в данный момент заблокированы другие потоки, непредсказуем.

Функция возвращает:

  • rcOk в случае успеха;
  • rcInvalidArgument, если semaphore указывает на невалидный семафор;
  • rcFail, если есть потоки, заблокированные этим семафором.
В начало
[Topic kos_semaphore_deinit]

KosSemaphoreInit()

Функция объявлена в файле kos/semaphore.h.

Retcode KosSemaphoreInit(KosSemaphore *semaphore, unsigned count);

Функция инициализирует семафор semaphore с начальным значением count.

Функция возвращает:

  • rcOk в случае успеха;
  • rcInvalidArgument, если semaphore указывает на невалидный семафор;
  • rcFail, если значение count превышает KOS_SEMAPHORE_VALUE_MAX.
В начало
[Topic kos_semaphore_init]

KosSemaphoreSignal()

Функция объявлена в файле kos/semaphore.h.

Retcode KosSemaphoreSignal(KosSemaphore *semaphore);

Функция освобождает (сигнализирует) семафор semaphore.

Функция возвращает:

  • rcOk в случае успеха;
  • rcInvalidArgument, если semaphore указывает на невалидный семафор.
В начало
[Topic kos_semaphore_signal]

KosSemaphoreTryWait()

Функция объявлена в файле kos/semaphore.h.

Retcode KosSemaphoreTryWait(KosSemaphore *semaphore);

Функция делает попытку захвата семафора semaphore.

Функция возвращает:

  • rcOk в случае успеха;
  • rcInvalidArgument, если semaphore указывает на невалидный семафор;
  • rcBusy, если семафор уже захвачен.
В начало
[Topic kos_semaphore_try_wait]

KosSemaphoreWait()

Функция объявлена в файле kos/semaphore.h.

Retcode KosSemaphoreWait(KosSemaphore *semaphore);

Функция ожидает захвата семафора semaphore.

Функция возвращает:

  • rcOk в случае успеха;
  • rcInvalidArgument, если semaphore указывает на невалидный семафор.
В начало
[Topic kos_semaphore_wait]

KosSemaphoreWaitTimeout()

Функция объявлена в файле kos/semaphore.h.

Retcode KosSemaphoreWaitTimeout(KosSemaphore *semaphore, rtl_uint32_t mdelay);

Функция ожидает захвата семафора semaphore в течение mdelay миллисекунд.

Функция возвращает:

  • rcOk в случае успеха;
  • rcInvalidArgument, если semaphore указывает на невалидный семафор;
  • rcTimeout, если время ожидания истекло.
В начало
[Topic kos_semaphore_wait_timeout]