Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: tox-dev/filelock
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3.21.2
Choose a base ref
...
head repository: tox-dev/filelock
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3.22.0
Choose a head ref
  • 3 commits
  • 5 files changed
  • 2 contributors

Commits on Feb 14, 2026

  1. ✨ feat(soft): detect and break stale locks (#476)

    SoftFileLock leaves orphaned lock files when the holding process
    crashes. Other processes then block forever waiting for a lock that
    will never be released.
    
    Now the lock file stores the holder's PID and hostname. On contention,
    if the holder is on the same host and its PID no longer exists, the
    stale lock is atomically renamed away and removed, allowing acquisition
    to proceed on the next retry. All detection errors are suppressed to
    preserve backward compatibility with empty or foreign lock files.
    gaborbernat authored Feb 14, 2026
    Configuration menu
    Copy the full SHA
    e35c3af View commit details
    Browse the repository at this point in the history
  2. 🐛 fix(soft): skip stale detection on Windows (#477)

    Python's _wopen() cannot set FILE_SHARE_DELETE, so any read handle on
    the lock file blocks DeleteFileW in _release, causing a livelock under
    threaded contention. On Windows EACCES already signals the holder is
    alive (fd still open) and EEXIST means the releasing thread will clean
    up shortly, so stale detection adds no value there.
    
    Removes the CreateFileW/FILE_SHARE_DELETE read path and the mtime-based
    threshold, both of which were insufficient. Stale detection now runs
    only on Unix/macOS where unlink succeeds regardless of open handles.
    gaborbernat authored Feb 14, 2026
    Configuration menu
    Copy the full SHA
    5331966 View commit details
    Browse the repository at this point in the history
  3. Release 3.22.0

    gaborbernat committed Feb 14, 2026
    Configuration menu
    Copy the full SHA
    1dd2465 View commit details
    Browse the repository at this point in the history
Loading