Re: issue in copying the hash table(Reposted third time)

From: Date: Wed, 07 Jul 2004 16:04:51 +0000
Subject: Re: issue in copying the hash table(Reposted third time)
References: 1 2 3 4 5  Groups: php.internals 
Request: Send a blank email to internals+get-10949@lists.php.net to get a copy of this message
Hi Moriyoshi, Thanks for replying. My question is very simple. Please answer the following question. 1)Zend has global_class_table of type HashTable with a key as the class name ('char*') and value of type 'zend_class_entry**'. True or False? As I look at the code the above statement seems to be true. If it is the case to duplicate the global_class_table for each thread, we need to double dereferencing for each class in the global_class_table.(As the value is of type zend_class_entry** in the HashTable.) Having this deep copy implementation inside zend_hash_copy which is a generic function responsible for copying any two hash table cannot be used for this specific case of double dereferencing. My statement about this global_class_table copy is not correct. But somehow it is working. If the answer to the above question is False. I can show the piece of code from where I have come to a answer of 'True'. Thanks With regards Kamesh Jayachandran On Wed, 7 Jul 2004 23:50:59 +0900, "Moriyoshi Koizumi" <moriyoshi@at.wakwak.com> said: > > On 2004/07/07, at 14:18, Kamesh Jayachandran wrote: > > >>> 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. > > Sorry, but I don't quite understand what you meant in the above > paragraph. > Is it a threading / race related issue that you are pointing out here? > > As far as I know, only the global class table is shared across threads > and is duplicated to emulate fork() behaviour, as the compiler global is > actually a thread specific value (that is, a separate instance is > prepared for each thread.) > > Moriyoshi >

« previous php.internals (#10949) next »