Re: file.c fsock.c ... Again ...
| From: | Derick Rethans | Date: | Sat, 13 Jan 2001 23:03:34 +0000 |
| Subject: | Re: file.c fsock.c ... Again ... | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-44006@lists.php.net to get a copy of this message | ||
Hello,
can you try the latest CVS? Zeev did some work on it today.
Derick
On Sat, 13 Jan 2001, Sean R. Bright wrote:
>
> Anyone see the logical problem with this besides me?
>
> #ifdef ZTS
> static void file_globals_ctor(FLS_D) <--- THIS is defined if thread safe
> {
> zend_hash_init(&FG(ht_fsock_keys), 0, NULL, NULL, 1);
> zend_hash_init(&FG(ht_fsock_socks), 0, NULL, (void (*)(void
> *))php_msock_destroy, 1);
> FG(def_chunk_size) = PHP_FSOCK_CHUNK_SIZE;
> FG(phpsockbuf) = NULL;
> FG(fgetss_state) = 0;
> FG(pclose_ret) = 0;
> }
> static void file_globals_dtor(FLS_D)
> {
> zend_hash_destroy(&FG(ht_fsock_socks));
> zend_hash_destroy(&FG(ht_fsock_keys));
> php_cleanup_sockbuf(1 FLS_CC);
> }
> #endif
>
> PHP_MINIT_FUNCTION(file)
> {
> le_fopen = zend_register_list_destructors_ex(_file_fopen_dtor, NULL,
> "file", module_number);
> le_popen = zend_register_list_destructors_ex(_file_popen_dtor, NULL,
> "pipe", module_number);
> le_socket = zend_register_list_destructors_ex(_file_socket_dtor,
> NULL, "socket", module_number);
>
> #ifdef ZTS
> file_globals_id = ts_allocate_id(sizeof(php_file_globals),
> (ts_allocate_ctor) file_globals_ctor, (ts_allocate_dtor) file_gl$
> #else
> file_globals_ctor(FLS_C); <--- BUT is called when not thread safe
> (i.e. its not defined...
> #endif
>
> Errors happening:
>
> .libs/libphp4.a(file.o): In function `php_minit_file':
> /usr/cvs/php4/ext/standard/file.c:179: undefined reference to
> `file_globals_ctor'
> .libs/libphp4.a(fsock.o): In function `php_mshutdown_fsock':
> /usr/cvs/php4/ext/standard/fsock.c:726: undefined reference to
> `fsock_globals_dtor'
> collect2: ld returned 1 exit status
>
>
>