ID:               25814
 User updated by:  mike at aqua-helix dot com
 Reported By:      mike at aqua-helix dot com
 Status:           Open
 Bug Type:         Filesystem function related
 Operating System: Linux RedHat 7.3
 PHP Version:      4.3.4RC1
 New Comment:

>From documentation about 'flock':
The optional third argument is set to TRUE if the lock would block
(EWOULDBLOCK errno condition)

Actualy third argument will never set to true due to error in
implementation. Let see the code (line 253 in 'file.c'):

        if ((ret=flock(fd, act)) == -1) {
                RETURN_FALSE;
        }
        if(ret == -1 && errno == EWOULDBLOCK && arg_count == 3) {
                ZVAL_LONG(*arg3, 1);
        }

The second 'if' will never act as if ret==-1 function immediately
returns
false in the first 'if'

Here is my version:

        if ((ret=flock(fd, act)) == -1) {
         if( errno == EWOULDBLOCK && arg_count == 3)
           ZVAL_LONG(arg3, 1);

         RETURN_FALSE;
        }


Previous Comments:
------------------------------------------------------------------------

[2003-10-09 19:13:47] mike at aqua-helix dot com

Description:
------------
>From documentation about 'flock':
The optional third argument is set to TRUE if the lock would block
(EWOULDBLOCK errno condition)

Actualy third argument will never set to true due to error in
implementation. Let see the code (line 253 in 'file.c'):

        if ((ret=flock(fd, act)) == -1) {
                RETURN_FALSE;
        }
        if(ret == -1 && errno == EWOULDBLOCK && arg_count == 3) {
                ZVAL_LONG(*arg3, 1);
        }

The second 'if' will never act as if ret==1 function immediately
returns false in the first 'if'

Here is my version:

        if ((ret=flock(fd, act)) == -1) {
         if( errno == EWOULDBLOCK && arg_count == 3)
           ZVAL_LONG(arg3, 1);

         RETURN_FALSE;
        }





------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=25814&edit=1

Reply via email to