Мне нужно спроектировать оболочку для примитива синхронизации процесса, который действует как семафор с, скажем, пределом 1 (так что только один клиент может заблокировать его одновременно).Если бы это было единственным требованием, тогда я мог бы просто использовать именованные семафоры.Но я также хотел бы знать, в тех случаях, когда клиент не может заблокировать примитив, который фактически заблокировал его.Лучше всего знать идентификатор процесса блокировки.Я вижу, как я могу добиться этого в системах POSIX с semctl
и GETPID
, но Windows не предоставляет ничего подобного.Мне также известно, что я могу легко добиться этого с помощью файлов (например, открывая известный файл с общими правами на чтение и без общего доступа - при блокировке клиент создает этот файл и пишет его PID, чтобы другие могли его прочитать), но по возможностиЯ хотел бы использовать реальные примитивы API OS вместо файловой системы.Это возможно?