Browse Source

Fix cgcompletion return code and free on successful completion.

ckolivas 12 years ago
parent
commit
0430165f7b
1 changed files with 4 additions and 4 deletions
  1. 4 4
      util.c

+ 4 - 4
util.c

@@ -2510,11 +2510,11 @@ bool _cg_completion_timeout(void *fn, void *fnarg, int timeout, const char *file
 {
 	struct cg_completion *cgc;
 	pthread_t pthread;
-	bool ret;
+	bool ret = false;
 
 	cgc = malloc(sizeof(struct cg_completion));
 	if (unlikely(!cgc))
-		return false;
+		return ret;
 	cgsem_init(&cgc->cgsem);
 	cgc->fn = fn;
 	cgc->fnarg = fnarg;
@@ -2522,7 +2522,7 @@ bool _cg_completion_timeout(void *fn, void *fnarg, int timeout, const char *file
 	pthread_create(&pthread, NULL, completion_thread, (void *)cgc);
 
 	ret = cgsem_mswait(&cgc->cgsem, timeout);
-	if (ret)
+	if (!ret)
 		free(cgc);
-	return ret;
+	return !ret;
 }