ID:               32861
 Updated by:       [EMAIL PROTECTED]
 Reported By:      lew at mailduct dot com
-Status:           Assigned
+Status:           Feedback
 Bug Type:         Filesystem function related
 Operating System: FreeBSD 4.11-REL
 PHP Version:      5.0.4, 4.3.10
 Assigned To:      pollita
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip




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

[2005-07-29 01:56:21] [EMAIL PROTECTED]

Assigning to Sara who knows this stuff..


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

[2005-07-28 20:26:32] lew at mailduct dot com

After testing with the latest php5 release, this still has a problem. 
Let me try to be more succinct in summarizing...

When operating with wrapper_type of 'plainfile' (such as when tailing
one or more files), the tv_sec and tv_usec (timeout) are ignored...
because stream_select insists on classifying FEOF as an important
event.  While this may be true for a socket event (socket close, for
example... which is why we have socket_select instead), it is not true
for a plainfile event.

Ask yourself this question -- How would you make use of the 'timeout'
parameter when reading from a plainfile wrapper?  It would never come
into play if FEOF awakens the stream_select call!  The purpose of
stream_select is to let you multiplex streams... so you can WAIT for an
action to take place on a stream (or a timeout).  If FEOF is allowed to
awaken the select (rather than waiting for a timeout or for data to
become available), then there's not much point to using that call... 
You're forcing it to do [expensive] polling instead of relying on the
select() interrupt structure to do the work for you.

My second argument is this:  Let's assume you insist FEOF should awaken
the select.  If that's the case, then it still is not working
correctly... because if I *add data* to a file after the select
detected EOF, and then do a select again, it *still* thinks no data is
available (and that we're still at EOF even though we're not).

This is VERY broken.

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

[2005-05-27 00:04:54] lew at mailduct dot com

I have now tested this using both PHP 4.3.11 and 5.0.4, and the bug
remains.  My same prior notes apply.  Please review.

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

[2005-04-28 07:45:59] lew at mailduct dot com

I believe that under the OS and PHP version given in the headers of
this report, the stream timeout function is not working when used with
fgets as well.  However, I will load the current PHP on the box and
test again, to ensure I provide you with accurate and complete
information and I'll open a new pr if necessary.

Let's close this one as Bogus.

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

[2005-04-28 00:35:16] [EMAIL PROTECTED]

>From the stream_select() manual page:

The streams listed in the read array will be watched to see if
characters become available for reading (more precisely, to see if a
read will not block - in particular, a stream resource is also ready on
end-of-file, in which case an fread() will return a zero length string).




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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/32861

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

Reply via email to