Здравствуйте, netch80, Вы писали: N>1. Проблема в том, что я нарвался на это не в C#, а в IronPython, на встроенной функции file(), которой никакого шаринга задать нельзя — не рассчитана она на это. Можно, конечно, сказать, что это ошибка его (IronPython) авторов, и это будет верно. Но это показывает общую идеологическую проблему перетаскивания средства из чуждого мира.
MC>The constructor is given read/write access to the file, and it is opened sharing Read access (that is, requests to open the file for writing by this or another process will fail until the FileStream object has been closed, but read attempts will succeed). The buffer size is set to the default size of 4096 bytes (4 KB).
Понятно. Да уж, давно не сталкивался с такими извращениями, отвык.
Посмотрим дальше — если можно обойтись малой кровью (есть ещё десяток примерно таких же по изврату мест), получим неплохую основу, а они — инсталляционную базу. Только вот боюсь, что легче воспользоваться чем-то менее инопланетянским...
Здравствуйте, netch80, Вы писали: N>Понятно. Да уж, давно не сталкивался с такими извращениями, отвык.
Мммм... А чего Вы еще ожидали, открывая файл на запись?
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, netch80, Вы писали: N>>1. Проблема в том, что я нарвался на это не в C#, а в IronPython, на встроенной функции file(), которой никакого шаринга задать нельзя — не рассчитана она на это. Можно, конечно, сказать, что это ошибка его (IronPython) авторов, и это будет верно. Но это показывает общую идеологическую проблему перетаскивания средства из чуждого мира.
MC>Приведите пожалуйста код на питоне.
Его слишком много.:(( Вырезать показательный кусок на сейчас не могу. Попробую позже.
Есть ещё ряд интересных аспектов. Например, если я пишу f = file(filename, 'r'); print f.fileno(); — получаю, например, 5, в то время как fstat показывает, что это дескриптор номер 15. Источник проблемы приблизительно понятен, но подобное поведение не подходит — надо передать в дочерний процесс дескриптор вместе с его номером.
Чем заменить select или poll в движке событий, я совсем уже не представляю себе.;(
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, netch80, Вы писали: N>>Понятно. Да уж, давно не сталкивался с такими извращениями, отвык. MC>Мммм... А чего Вы еще ожидали, открывая файл на запись?
Честно ответить?;)) Ожидал стандартного нормального поведения — никаких блокировок и отказов, пока об этом явно не попросили (т.наз. advisory locking). В общем, того, что ожидается от нормального юникса и реализации на нём. И, естественно, тут не должно было быть никакого неестественного интеллекта с решением за меня, что к чему не пускать (в рамках одного процесса — это ж додуматься надо!)