threads/135462: commit references a PR

dfilter service dfilter at FreeBSD.ORG
Fri Sep 25 00:20:06 UTC 2009


The following reply was made to PR threads/135462; it has been noted by GNATS.

From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: threads/135462: commit references a PR
Date: Fri, 25 Sep 2009 00:15:40 +0000 (UTC)

 Author: davidxu
 Date: Fri Sep 25 00:15:30 2009
 New Revision: 197477
 URL: http://svn.freebsd.org/changeset/base/197477
 
 Log:
   don't report error if key was deleted.
   
   PR:	threads/135462
 
 Modified:
   head/lib/libthr/thread/thr_spec.c
 
 Modified: head/lib/libthr/thread/thr_spec.c
 ==============================================================================
 --- head/lib/libthr/thread/thr_spec.c	Fri Sep 25 00:03:13 2009	(r197476)
 +++ head/lib/libthr/thread/thr_spec.c	Fri Sep 25 00:15:30 2009	(r197477)
 @@ -131,9 +131,19 @@ _thread_cleanupspecific(void)
  				curthread->specific[key].data = NULL;
  				curthread->specific_data_count--;
  			}
 +			else if (curthread->specific[key].data != NULL) {
 +				/* 
 +				 * This can happen if the key is deleted via
 +				 * pthread_key_delete without first setting the value
 +				 * to NULL in all threads.  POSIX says that the
 +				 * destructor is not invoked in this case.
 +				 */
 +				curthread->specific[key].data = NULL;
 +				curthread->specific_data_count--;
 +			}
  
  			/*
 -			 * If there is a destructore, call it
 +			 * If there is a destructor, call it
  			 * with the key table entry unlocked:
  			 */
  			if (destructor != NULL) {
 _______________________________________________
 svn-src-all at freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
 


More information about the freebsd-threads mailing list