Loading ...
Sorry, an error occurred while loading the content.

One more thought about vim race condition during file saving

Expand Messages
  • Adam Osuchowski
    Did you think about use leases to exclusively lock file during save? I mean fcntl() with F_SETLEASE. It acquires mandatory lock and doesn t break hard links,
    Message 1 of 1 , Jan 11, 2009
    • 0 Attachment
      Did you think about use leases to exclusively lock file during save?
      I mean fcntl() with F_SETLEASE. It acquires mandatory lock and doesn't break
      hard links, which you afraid of. Processes which try to read file during
      saving are blocked on open() until lease is removed, so it doesn't change
      behaviour from other processes' point of view. On the other hand, it is
      not possible to obtain write lease on file already opened by another
      process, and in such a situation (which IMHO shouldn't happen often with
      files which are edited by hand) vim should retry acquiring lease after short
      sleep or fallback to current behaviour.

      This method was originally developed for use in samba, but it is available
      in Linux kernel since 2002 (or even earlier), so it could be said that it
      is standard. Certainly, it is Linux specific feature, but if it is
      available, why shouldn't it be used.

      Any pros or cons?

      Regards.

      --~--~---------~--~----~------------~-------~--~----~
      You received this message from the "vim_dev" maillist.
      For more information, visit http://www.vim.org/maillist.php
      -~----------~----~----~----~------~----~------~--~---
    Your message has been successfully submitted and would be delivered to recipients shortly.