Здравствуйте, Fortnum, Вы писали:
F>Вот так изменил MyProc, время нахождения в lock'е увеличил до секунды, чтобы потоки наверняка пересекались... и, блин, оно заработало! Возвращает TRUE, хотя работать-то, получается, не должно? Ничего не понимаю
Похоже, ты не первый, кто с этой проблемой столкнулся.
http://stackoverflow.com/questions/23598531/deadlock-using-lockfile
Вот здесь есть такое замечание
http://marc.info/?l=apr-dev&m=138244402421112&w=2
"because the LockFileEx() should not be called recursively."
recursively или в разных потоках — в данном случае одно и то же.
Хотя про официальный запрет рекурсии я что-то ничего найти не могу.