LockFileManager is used for acquiring and watching .lock files
Current implementation that checks for lock release, is using exponentially growing timeouts.
In some cases, dependent module compilation time is relatively long (tens of seconds). In this case, timeouts could lead to the situation, when a process, watching for a lock release will just sleep for another ten of seconds after lock release.
Provided implementation is using kqueue for listening for file system changes process termination. This allows preventing unneded timeouts in the most of the cases.