Re: Question about socket ext. file descriptors

From: Date: Thu, 29 Mar 2001 13:41:22 +0000
Subject: Re: Question about socket ext. file descriptors
References: 1 2 3 4 5  Groups: php.dev 
Request: Send a blank email to php-dev+get-50220@lists.php.net to get a copy of this message
At 03:35 PM 3/29/2001 +0200, Zeev Suraski wrote:
Note that the situation isn't as bad as you thought - it's not that it's not using the resource mechanism. It is, if it wasn't, we'd be getting loads of complaints from people running out of descriptors very quickly. It just uses old, PHP 3 style resources, of type IS_LONG. They're still destroyed when the request ends, so it's all safe and all. It simply doesn't use the PHP 4 style, of type IS_RESOURCE, which are actually destroyed when they're no longer needed. It's a good idea to update this code, but it's not very dangerous the way it is now.
I think you are wrong. Look at the function accept_connect(). You are creating a new file descriptor and not saving it anywhere!
Lars - apparently you got it wrong; The integers you are getting are *not* file descriptors. They're resource handles, of type IS_LONG. They might accidentally correspond to the file descriptors, but it'd be complete coincidence. In short, regardless of whether we upgrade the file functions to use IS_RESOURCE resources or not, what they return cannot be relied upon as file descriptor numbers, simply because they're not. I hope that clears it up...
Not for me :) Andi

« previous php.dev (#50220) next »