Служба прерывания IPC

Служба предназначена для прерывания блокирующих системных вызовов Call() и Recv(). (Это может потребоваться, например, для корректного завершения процесса.)

Сведения о методах службы приведены в таблице ниже.

Методы службы ipc.IPC (интерфейс kl.core.IPC)

Метод

Назначение и параметры метода

Потенциальная опасность метода

CreateSyncObject

Назначение

Создает объект синхронизации IPC.

Объект синхронизации IPC используется для прерывания блокирующих системных вызовов Call() и Recv() во всех потоках текущего процесса. Call() может быть прерван только тогда, когда он ожидает вызова Recv() сервером. Recv() может быть прерван только тогда, когда он ожидает получения данных от клиента.

Дескриптор объекта синхронизации IPC не может быть передан другому процессу, так как в маске прав этого дескриптора не установлен необходимый для этого флаг.

Параметры

  • [out] syncHandle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует объект синхронизации IPC.
  • [out] rc – код возврата.

Позволяет исчерпать память ядра, создавая в ней множество объектов.

SetInterrupt

Назначение

Переводит заданный объект синхронизации IPC в состояние, при котором системные вызовы Call() и Recv() прерываются.

Параметры

  • [in] syncHandle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует объект синхронизации IPC.
  • [out] rc – код возврата.

Нет.

ClearInterrupt

Назначение

Переводит заданный объект синхронизации IPC в состояние, при котором системные вызовы Call() и Recv() не прерываются.

Параметры

  • [in] syncHandle – значение, двоичное представление которого состоит из нескольких полей, включая поле дескриптора и поле маски прав дескриптора. Дескриптор идентифицирует объект синхронизации IPC.
  • [out] rc – код возврата.

Нет.

В начало