6.13. Szeregowanie dostępu do pliku

Problem

Chcemy uniemożliwić innym wątkom i procesom modyfikowanie pliku, który właśnie przetwarzamy.

Rozwiązanie

Po otwarciu pliku należy ograniczyć do niego dostęp innym wątkom, wywołując metodę File#flock. Ograniczenie to może mieć dwa warianty, reprezentowane przez parametr wywołania metody:

  • Wyłączny (exclusive) dostęp do pliku — zwany często blokadą w celu zapisu (write lock) — osiąga się, wywołując metodę flock z parametrem FILE::LOCK_EX. Po pomyślnym zablokowaniu pliku żaden inny wątek ani proces nie będzie mógł zablokować go ani na wyłączność, ani do odczytu. W ten sposób zapewniamy sobie wyłączny wpływ na (modyfikowaną właśnie) zawartość pliku.

  • Uniemożliwienie modyfikacji pliku przez inne ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.