Закрытие Windows (виртуальных) последовательных портов - сколько времени ОС освобождает их?
Я пишу приложение Python (2.6), которое использует виртуальные последовательные порты com0com. Он работает на Windows Server 2008 R2 (sp1) (я также вижу ту же проблему на моей машине разработки, которая является Win 7).
Пары порта com0com создаются до запуска приложения. Приложение открывает порты (путем создания объектов serial.Serial), использует их и затем закрывает их.
Попытка повторно использовать этот порт слишком скоро заканчивается неудачей - вызов конструктора вполне допустим (то есть он возвращает открытый объект serial.Serial), но этот объект кажется непригодным для использования. Поскольку эти объекты используются другим приложением, возможно, что приложение не выпускает что-то правильно.
Есть ли известный интервал, который я должен ждать, чтобы повторно использовать порты com0com? Может быть, порты com0com каким-то образом настроены неправильно? Или что-то другое?
Псевдокодовый обзор высшего уровня кода:
loop:
serialPort = serial.Serial(port=COM90)
subprocess.check_call([blah.exe, "COM90"])
# this check_call succeeds on first iteration
# fails on second iteration, but will succeed subsequently ...
serialPort.close()
# pause before reusing COM90