вторник, 9 апреля 2013 г.

Объекты синхронизации в Lazarus. Первый взгляд.

Для работы c com портом мне необходимо реализовать очередь запросов. Нужны объекты синхронизации, а точнее семафоры.
С налёту не нашел ничего такого. Пришлось ковыряться.

Модуль syncobjs
Содержит два класса:

1. TCriticalSection - критическая секция (описание)

procedure Acquire; // вход в секцию
procedure Release; // выход из секции
procedure Enter; // вход в секцию (кому как удобнее)
function TryEnter:Boolaen; // попытка входа в секцию (можно проверить занята ли секция)  
procedure Leave; // выход из секции (кому как удобнее)
constructor Create; // создание
destructor Destroy;  // уничтожение

2. TEventObject - событие (описание)

constructor Create;  // создание события
destructor destroy; // уничтожение
procedure ResetEvent;  // сброс события
procedure SetEvent;  // установка события
function WaitFor();  // ожидание установки события
ManualReset: Boolean; // можно ли сбрасывать событие вручную

Модуль ipc- работает только для Linux (судя по документации). Нам не подходит.

Семафоры на данный момент не найдены.

Комментариев нет:

Отправить комментарий