Взаимное исключение (в статической библиотеке) - PullRequest
2 голосов
/ 21 января 2010

У меня есть статическая библиотека для доступа к базе данных. Имеет функцию readMaximum().

readMaximum () читает максимальное значение из БД. Эта функция является поточно-ориентированной (используя мьютекс).

Но проблема в следующем:

Есть два процесса A.exe и B.exe ; оба скомпилированы со статической библиотекой .

Можно ли как-нибудь реализовать взаимное исключение между процессами A.exe и B.exe, чтобы при вызове функции readMaximum() двумя процессами одновременно только одному разрешалось входить в критический раздел?

PS. Я не хотел бы изменять какое-либо свойство БД / Схемы / Таблицы.

Ответы [ 3 ]

1 голос
/ 21 января 2010

Используйте CreateMutex () для создания именованного глобального мьютекса. Префикс имени «Global \».

1 голос
/ 21 января 2010

Вы можете использовать с именем семафор . Он виден всем процессам и может контролировать это поведение.

0 голосов
/ 21 января 2010

POSIX имеет мьютексы, которые могут быть разделены между процессами.

...