Re: Question about socket ext. file descriptors
| From: | Andi Gutmans | 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