Hi All, Can someone clarify me on this?. With regards Kamesh Jayachandran
On Mon, 05 Jul 2004 01:25:51 -0700, "Kamesh Jayachandran" <[EMAIL PROTECTED]> said: > 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