Re: module global becomes executor globals then back again
| From: | Nick Loeve | Date: | Sun, 04 Sep 2005 23:05:53 +0000 |
| Subject: | Re: module global becomes executor globals then back again | ||
| References: | 1 2 3 4 | Groups: | php.pecl.dev |
| Request: | Send a blank email to pecl-dev+get-2861@lists.php.net to get a copy of this message | ||
Wez Furlong wrote:
> emalloc()/efree() can only be used in between RINIT and RSHUTDOWN;
> after rshutdown, all emalloc'd memory is freed. zvals use emalloc()'d
> memory, so on the second request, your global variable was corrupted.
>
> As a general rule, you can't keep any kind of zval around between requests.
>
> --Wez.
Thanks Wez. Got it all sorted :)
>
> On 9/4/05, Nick Loeve <php@trickie.org> wrote:
>
>>Yeah i knew it was vague, but i was not sure why or how to begin, i was
>>just hoping that it sounded like a common problem :)
>>
>>It was caused by my setting a zval * as global variable, and allocating
>>it during a ini update method, so i assume the memory was being freed at
>>the end of the first request?? Not sure about that either.
>>
>>I changed it to a HashTable and it is now all good.
>>
>>Thanks anyway
>>
>>Wez Furlong wrote:
>>
>>>A vague answer for a vague question: sounds like you're doing something wrong.
>>>If you can give more info, I'm sure you'll get a better answer.
>>>
>>>--Wez.
>>>
>>>On 9/4/05, Nick Loeve <php@trickie.org> wrote:
>>>
>>>
>>>>Hi!
>>>>
>>>>I have a wierd problem in an extension i am developing, and was hoping
>>>>to get some pointers on how to debug it.
>>>>
>>>>I have a global variable in my module, that gets initialized as an array
>>>>at module start up. I have a function that returns that array, and the
>>>>first request that gets serviced returns that array as expected.
>>>>
>>>>Any subsequent requests return the entire executor globals with the
>>>>$GLOBALS referencing itself??
>>>>
>>>>If i wait 2 mins (and am guessing that the apache processes die and
>>>>respawn) then the array is returned correctly again the first time, but
>>>>not on subsequent requests.
>>>>
>>>>I am using a current CVS export of 5_1 and Apache 1.3.
>>>>
>>>>Any pointers would be appreciated.
>>>>
>>>>Cheers
>>>>Nick Loeve
>>>>
>>>>--
>>>>PECL development discussion Mailing List (http://pecl.php.net/)
>>>>To unsubscribe, visit: http://www.php.net/unsub.php
>>>>
>>>>
>>>
>>>
>