Imagine this: the critical section of Process 1 takes long time to execute, and Process 1 sets a small timeout (because it has no way to precisely determine the execution time of its critical section). Now after timeout, both Process 1 and 2 will be in their critical sections!

Why not simply using `flock()` to determine if one process has acquired the lock?