The lock-file mechanism in Kevin Trass's note is incorrect because it is subject to race conditions. For locks you need an atomic way of verifying if a lock file exists and creating it if it doesn't exist. Between file_exists and file_put_contents, another process could be faster than us to write the lock. The only filesystem operation that matches the above requirements that I know of is symlink(