I still think `$timeout` should not be interpreted this way. If `acuireFileLock()` succeeds, why do you still want to check this timeout value? 

IMO, the `$timeout` parameter should be the maximal time that the caller wants to wait before getting the lock. With the current implementation, it means the lock holder needs to know how long it wants to hold the lock, which is impractical.