2002-09-27 Robert Collins <rbtcollins@hotmail.com>
* thread.cc (pthread_key::run_destructor): Run_destructor is not
       const as it needs to set the key value.
       * thread.h (pthread_key::run_destructor): Ditto.
2002-09-27  Robert Collins <rbtcollins@hotmail.com>
       * thread.cc (pthread_key::run_destructor): Follow opengroup algorithm.
       I.e. only run the destructor NON-NULL key values, and reset the key
       to NULL before running the destructor. Reported by Thomas Pfaff.
			
			
This commit is contained in:
		| @@ -1,3 +1,15 @@ | |||||||
|  | 2002-09-27  Robert Collins <rbtcollins@hotmail.com> | ||||||
|  |  | ||||||
|  | 	* thread.cc (pthread_key::run_destructor): Run_destructor is not | ||||||
|  | 	const as it needs to set the key value. | ||||||
|  | 	* thread.h (pthread_key::run_destructor): Ditto. | ||||||
|  |  | ||||||
|  | 2002-09-27  Robert Collins <rbtcollins@hotmail.com> | ||||||
|  |  | ||||||
|  | 	* thread.cc (pthread_key::run_destructor): Follow opengroup algorithm. | ||||||
|  | 	I.e. only run the destructor NON-NULL key values, and reset the key | ||||||
|  | 	to NULL before running the destructor. Reported by Thomas Pfaff. | ||||||
|  |  | ||||||
| 2002-09-25  Christopher Faylor  <cgf@redhat.com> | 2002-09-25  Christopher Faylor  <cgf@redhat.com> | ||||||
|  |  | ||||||
| 	* cygrun.c (main): Fix setting of CYGWIN environment variable. | 	* cygrun.c (main): Fix setting of CYGWIN environment variable. | ||||||
|   | |||||||
| @@ -1035,10 +1035,17 @@ pthread_key::recreateKeyFromBuffer () | |||||||
| } | } | ||||||
|  |  | ||||||
| void | void | ||||||
| pthread_key::run_destructor () const | pthread_key::run_destructor () | ||||||
| { | { | ||||||
|   if (destructor)  |   if (destructor)  | ||||||
|     destructor (get ()); |     { | ||||||
|  |       void *oldValue = get(); | ||||||
|  |       if (oldValue) | ||||||
|  | 	{ | ||||||
|  |     	  set (NULL); | ||||||
|  |     	  destructor (oldValue); | ||||||
|  | 	} | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| /*pshared mutexs: | /*pshared mutexs: | ||||||
|   | |||||||
| @@ -212,7 +212,7 @@ private: | |||||||
|   void saveKeyToBuffer (); |   void saveKeyToBuffer (); | ||||||
|   void recreateKeyFromBuffer (); |   void recreateKeyFromBuffer (); | ||||||
|   void (*destructor) (void *); |   void (*destructor) (void *); | ||||||
|   void run_destructor () const; |   void run_destructor (); | ||||||
|   void *fork_buf; |   void *fork_buf; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user