‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

OpenOffice

Когда открываешь файл для редактирования, O.O. создаёт лок-файл, в котором .. что-то там что-то. Х.з. что, но оно ему надо.
И вот, смотрите, папка документов лежит на диске с виндой, файловая система NTFS.
Из ubuntu всё прекрасно видно, читается-пишется (я параноик, но уже давно успокоился). Открываю документ убунтой, редактирую, а потом просто перегружаю машину (лок-файл остаётся, где был) и запускаю уиндоус. И снова открываю тот файл для редактирования. O.O. слегка тупит, буквально секунд десять - ощутимая пауза по сравнению с линуксовой версией, но вполне терпимо. А при поптыке сохранить файл говорит, что у меня нет прав (?!).
Стираю лок-файл, просто выбрав его в проводнике и shift+del. Система стирает его без каких-то возражений.
Снова открываю тот документ - паузы нет, сохраняется без сообщений об отсутствии прав.

Што это было, Берримор?




А вопрос с призраками открытых сокетов толком решить-то, как оказалось, НЕЛЬЗЯ... т.е. нужен либо какой-то хэндшейк, корректно завершающий работу и перед тем, как сокет пришибается, устаналивающий ему таймаут = 0, либо никак.

Ещё интересно оказалось, что ежели чтение из сокета сделать неблокирующим (fcntl(.....NON_BLOCK) чего-то там), то сигнал о прекращении работы всё рано приходит чотко в начало вызова readfrom. Впрочем, возможно, он просто сам по себе медленный и мне так везёт.

А ещё хочу узнать, как можно корректно пришибить listen()/accept() - если туда приходит SIGTERM, то accept возвращает ошибку о прерванном системной вызове. В принципе, я могу конкретно вот этот вот код ловить и в его обработчике закрывать сокет (принудительно делая нулевой таймаут, чтоб система сразу его вышвырнула из всех своих списков), но .. а пожалуй, так и сделаю. Хули, я ж могу различать эти сигналы.
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 7 comments