API определен в заголовочном файле sysroot-*-kos/include/kos/rwlock.h из состава KasperskyOS SDK. Также в составе KasperskyOS SDK поставляется заголовочный файл sysroot-*-kos/include/kos/sync_api.h, который дает возможность транзитивно включить в исходный код программы заголовочный файл rwlock.h и заголовочные файлы для использования других примитивов синхронизации.
API предназначен для синхронизации потоков исполнения на основе блокировок чтения-записи. Блокировка чтения-записи – примитив синхронизации, который используется, чтобы разрешить доступ к разделяемым между потоками исполнения ресурсам либо на запись для одного потока исполнения, либо на чтение для нескольких потоков исполнения одновременно.
Сведения о функциях API приведены в таблице ниже.
Использование API
Типовой сценарий использования API включает следующие шаги:
KosRWLockInit().KosRWLockWrite() или KosRWLockTryWrite()) или для чтения (вызовом функции KosRWLockRead() или KosRWLockTryRead()).KosRWLockUnlock().Сведения о функциях API
Функции rwlock.h
Функция |
Сведения о функции |
|---|---|
|
Назначение Инициализирует блокировку чтения-записи. Параметры
Возвращаемые значения Нет. |
|
Назначение Захватывает блокировку чтения-записи для чтения. Если блокировка чтения-записи уже захвачена для записи, или есть потоки исполнения, ожидающие захвата этой блокировки чтения-записи для записи, то ожидает освобождения этой блокировки чтения-записи от захвата для записи сколь угодно долго. Параметры
Возвращаемые значения Нет. |
|
Назначение Захватывает блокировку чтения-записи для чтения. Если блокировка чтения-записи уже захвачена для записи, или есть потоки исполнения, ожидающие захвата этой блокировки чтения-записи для записи, то не ожидает освобождения этой блокировки чтения-записи от захвата для записи, а возвращает управление. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Захватывает блокировку чтения-записи для записи. Если блокировка чтения-записи уже захвачена для записи или чтения, ожидает освобождения этой блокировки чтения-записи сколь угодно долго. Параметры
Возвращаемые значения Нет. |
|
Назначение Захватывает блокировку чтения-записи для записи. Если блокировка чтения-записи уже захвачена для записи или чтения, не ожидает освобождения этой блокировки чтения-записи, а возвращает управление. Параметры
Возвращаемые значения В случае успеха возвращает |
|
Назначение Освобождает блокировку чтения-записи. Параметры
Возвращаемые значения Нет. Дополнительные сведения Если блокировка чтения-записи захвачена для чтения, то эта блокировка чтения-записи остается захваченной для чтения, пока все потоки исполнения, выполняющие чтение, не освободят ее. |