Edit report at https://bugs.php.net/bug.php?id=54453&edit=1
ID: 54453
Comment by: oxygenus at gmail dot com
Reported by: teamerx at gmail dot com
Summary: LOCK_NB works with LOCK_SH when file locked with
LOCK_EX ONLY
Status: Open
Type: Bug
Package: Filesystem function related
Operating System: Windows XP Centos Ubuntu (latest
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
Perhaps the method of running the PHP script should be mentioned. If this is
not
reproducible in CLI mode, then I think something else was at fault, not PHP.
http://stackoverflow.com/a/9827159/584490
Previous Comments:
------------------------------------------------------------------------
[2011-04-02 18:42:35] teamerx at gmail dot com
Description:
------------
LOCK_NB works with LOCK_SH when file locked with LOCK_EX ONLY
LOCK_NB doe NOT work with LOCK_SH if file is locked with LOCK_SH
LOCK_NB works with LOCK_EX when file locked with LOCK_SH ONLY
LOCK_NB doe NOT work with LOCK_EX if file is locked with LOCK_EX
preferred output : LOCK_NB should work with LOCK_SH or LOCK_EX no matter what
lock
type the file is locked with
Test script:
---------------
code 1:
$x = fopen("flocktest.txt", "a");
if (flock($x, LOCK_SH|LOCK_EX|LOCK_NB)) {
print "No problems, I got the lock, now I'm going to sit on it.";
@fwrite($x, 'ddd');
sleep(3);
} else {
print "Didn't quite get the lock. Quitting now. Good night.";
}
fclose($x);
code 2 :
$x = fopen("flocktest.txt", "rb");
if ($x){
if (flock($x, LOCK_SH|LOCK_NB)) {
print "No problems, I got the lock, now I'm going to sit on it.";
@fwrite($fp, 'ddd');
sleep(3);
} else {
print "Didn't quite get the lock. Quitting now. Good night.";
}
fclose($x);
}
if running code 1 then code 1 , lock NB is not working , if running code 1 then
code 2 , lock_nb works
if running code 2 then code 2 , lock_nb does not work , if running code 2 then
code 1 lock nb works .
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=54453&edit=1