Issue #3203 has been updated by tkusumi.

Status changed from New to Closed

----------------------------------------
Bug #3203: Don't assume pthread_t is a pointer
http://bugs.dragonflybsd.org/issues/3203#change-13794

* Author: tkusumi
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
A pthread_t variable doesn't need to be initialized with NULL prior to calling 
pthread_create(3).
This also isn't portable since pthread_t is an opaque type (i.e. may not be a 
pointer, and in fact it's not on Linux/glibc).

# grep "thread = NULL" sbin/hammer2 -rI
sbin/hammer2/subs.c:    pthread_t thread = NULL;
sbin/hammer2/cmd_service.c:     thread = NULL;
sbin/hammer2/cmd_service.c:     thread = NULL;
sbin/hammer2/cmd_service.c:             thread = NULL;
sbin/hammer2/cmd_service.c:                             conf->thread = NULL;
sbin/hammer2/cmd_service.c:             conf->iocom_thread = NULL;
sbin/hammer2/cmd_service.c:                                     thread = NULL;


It looks like above exists for this conditional below.
If this could be rewritten without testing pthread_t itself (it shouldn't be 
too), NULL initialization could be removed.

 369                 if (conf->thread == NULL) {
 370                         fprintf(stderr, "VOLCONF THREAD STARTED\n");
 371                         pthread_cond_init(&conf->cond, NULL);
 372                         pthread_create(&conf->thread, NULL,
 373                                        hammer2_volconf_thread, (void 
*)conf);
 374                 }



-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://bugs.dragonflybsd.org/my/account

Reply via email to