| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Lock текстовых файлов |
| Автор: ansiTeam 29.1.2013, 09:14 | ||||
| Здравствуйте Использую две функции, одну для блокировки, вторую для раблокирования:
Между вызовами функций lock() и unlock() находится некий код
Подскажмите, пожалуйста Если в коде между функциями произойдёт исключение, то файл сам разлочится или нет??? Если нет, то как его можно разлочить после произошедшего исключения!?!? |
| Автор: arto 29.1.2013, 09:20 |
| он у вас не разлочится в любом случае, вы теряете манипулятор файла. |
| Автор: DurRandir 29.1.2013, 13:21 |
| a) Проверяйте коды возврата flock б) flock требует хэндла, а в unlock вы передаёте что? Путь? в) В случае смерти процесса - блокировка теряется. Но если ваше исключение не приведёт к этому, а будет поймано где-то выше по стеку, используйте что-нибудь из серии Guard/Scope::Guard/Scope::Upper для гарантированного выполнения кода unlock'a в случае выхода из блока. |