Skip to content
  • deuce's avatar
    More concurrency changes... · 5e76b051
    deuce authored
    1) Don't mswait(1) on a successful lock, or when timeout is zero.
    2) Flush read buffer on Get and ReLoad()
       - If there's a single record in the file, close and re-open it.
       - If a lock is held on a different record already, read that record.
       - Otherwise, read the first record a lock with timeout zero succeeds.
    3) Flush write buffer on Put().
    
    This should now actually be safe as long as locks work.
    Using file_mutex() on records is the only potential change still needed.
    (Because POSIX fcntl() locks are insane)
    5e76b051