|
Posted by ljb on 11/01/07 01:21
terra1024@yahoo.com wrote:
> On Oct 31, 10:16 am, yawnmoth <terra1...@yahoo.com> wrote:
>> If I do flock($fp, LOCK_EX) on a file and another user tries to do
>> file_get_contents on that file while it's locked, will
>> file_get_contents block until the lock has been removed?
>
> Also, does file_get_contents lock files? What would happen if a
> script tried to lock a file with an exclusive lock (LOCK_EX) while
> another instance of the script was reading it? Would the flock
> operation block until it had exclusive access? Would the script doing
> the reading suddenly stop? Would the script doing the reading
> suddenly read different data?
The PHP manual says that flock is advisory, except on Windows where it
is mandatory. Advisory locks only apply among processes that agree to use
them, so just doing file_get_contents would not be affected. Mandatory
locks mean no other process can violate the lock, regardless of how it
tries to access the file. flock() itself will block to acquire a lock by
default, but I have no idea if other functions like file_get_contents would
(in a mandatory locking environment). I suspect they would just fail.
Navigation:
[Reply to this message]
|