Did I make the problem statement clear?. With regards Kamesh Jayachandran On Mon, 28 Jun 2004 22:57:38 -0700, "Kamesh Jayachandran" <[EMAIL PROTECTED]> said: > Hi Andi, > In Zend/zend.c > function name is compiler_globals_ctor > This function is defined inside the #ifdef ZTS macro > Line of concern > zend_hash_copy(compiler_globals->class_table, global_class_table, > (copy_ctor_func_t) zend_class_add_ref, &tmp_class, > sizeof(zend_class_entry)); > > If I am correct our global_class_table is a hash table of classname > versus zend_class_entry**. > > In this case while making a copy og global_class_table to thread > specific class_table in a deep fashion. zend_hash_copy has to do the > double dereferencing which it can't being a generic fuinction. > > > So my contention is > The above line should be the following > zend_hash_copy(compiler_globals->class_table, global_class_table, > (copy_ctor_func_t) zend_class_add_ref, &tmp_class, > sizeof(zend_class_entry*)); > If sharing of class entries are desired across threads. > Else > We should write a custom class_table deep copy function. > > > Hope I made it clear. > Awaiting for your comments. > > With regards > Kamesh Jayachandran > > > > > On Mon, 28 Jun 2004 07:58:59 -0700, "Andi Gutmans" <[EMAIL PROTECTED]> said: > > I don't quite understand the question. > > Can you rephrase what exactly is bothering you? > > > > Andi > > > > At 03:46 AM 6/28/2004 +0530, Kamesh Jayachandran wrote: > > >Hi All, > > >Sorry to repost for the third time. > > >I want the clarification regarding copying the global_class_table to > > >thread specific compiler_globals->class_table in compiler_globals_ctor > > >in Zend/zend.c. > > > > > >According to me memcpy should copy 'whatever source points to' to > > >'destination'. > > >Our class_table hashtable structure looks like this, > > >char *key; > > >zend_class_entry** value; > > >So memcpy should copy only whatever (zend_class_entry**) points to which > > >is semantically wrong good candidate for Segmentation fault. > > > > > >No way memcpy can do double dereferencing for this case. > > > > > >Somehow in Linux when i compile it with maintainer-zts-mode memcpy > > >copies the data fine. > > >I verified all the internal classes. Thread specific class_table is in > > >sink with the global_class_table. > > > > > > > > >Please clarify. > > > > > >Thanks in Advance > > > > > > > > >With regards > > >Kamesh Jayachandran > > > > > >-- > > >PHP Internals - PHP Runtime Development Mailing List > > >To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php >
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php