Page MenuHomePhabricator

Merge #12422: util: Make LockDirectory thread-safe, consistent
ClosedPublic

Authored by jasonbcox on Apr 16 2019, 20:28.

Details

Summary

1d4cbd2 test: Add unit test for LockDirectory (Wladimir J. van der Laan)
fc888bf util: Fix multiple use of LockDirectory (Wladimir J. van der Laan)

Pull request description:

Wrap the `boost::interprocess::file_lock` in a `std::unique_ptr` inside the map that keeps track of per-directory locks.

This fixes a build issue with the clang 4.0.0+boost-1.58.0p8 version combo on OpenBSD 6.2, and should have no effect otherwise.

Also add a unit test, make the function thread-safe, and fix Linux versus Windows behavior inconsistency.

Meant to fix #12413.

Tree-SHA512: 1a94c714c932524a51212c46e8951c129337d57b00fd3da5a347c6bcf6a947706cd440f39df935591b2079995136917f71ca7435fb356f6e8a128c509a62ec32

Backport of Core PR 12422
https://github.com/bitcoin/bitcoin/pull/12422/files
Completes T607
Depends on D2808

Test Plan

make check

Diff Detail

Repository
rABC Bitcoin ABC
Branch
pr12422
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 5475
Build 9012: Bitcoin ABC Buildbot (legacy)
Build 9011: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Apr 17 2019, 12:01