Я наблюдаю некоторое неожиданное поведение в отношении файловых дескрипторов в Windows.
У меня есть два процесса, которые пытаются получить дескрипторы файлов только для чтения для одного и того же базового файла.
Процесс A (двоичный файл Go) открывает доступный только для чтения дескриптор файла для этого файла, а затем использует его для получения эксклюзивной блокировки файла.
Затем процесс B (двоичный файл Python) пытается открыть доступный только для чтения дескриптор файла для того же файла, что приводит к следующему IOError
:
IOError: [Errno 13] Permission denied: 'C:\\path\\to\\file.txt'
Когда процесс А отсутствует, процесс Б без проблем открывает файл.
Насколько я знаю, нет никаких проблем с двумя процессами в Windows, которые содержат файловые дескрипторы только для чтения для одного и того же файла, и я не нашел никакой документации, предполагающей, что один из этих процессов, удерживающих эксклюзивную блокировку, изменяет это.
Кто-нибудь знает, что может привести к сбою вызова Python open()
?
(Если это полезно, я использую реализацию блокировки файлов Go: этот.)