Вот можно как сделать, что то типа такого
generate $id;
mutex $id;
while i=1 $id.lock();
i=1;
..yourprogram..
i=0;
$id.unlock();
только i надо обьявить в статике где то повыше чтоли или какой то другой триггер общий использовать семафор, можно тогда вообще без мутексов обойтись только while и скобками наверное
это псевдокод ;)
Вот такую функцию можно в качестве глобального счетчика использовать, прошу прощения за небольшой офтоп ну это в тему:
HANDLE CreateSemaphore
(
LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, // атр. доступа
LONG lInitialCount, // начальное состояние счетчика
LONG lMaximumCount, // макс кол-о обращений
LPCTSTR lpName // имя объекта
);
Это видимо надо в отдельном процессе создавать который не будет дуплицироваться
BOOL ReleaseSemaphore
(
HANDLE hSemaphore,// указатель на семафор
LONG lReleaseCount, // на сколько изменять счетчик
LPLONG lpPreviousCount // предыдущее значение
);
В случае успеха возвращаемое значение — не ноль.
—