Details
- 
    
Bug
 - 
    Status: Closed (View Workflow)
 - 
    
Major
 - 
    Resolution: Fixed
 - 
    10.6.4
 - 
    All
 
Description
Hi, developers, thank you for your checking. It seems the lock thd->ctrl_mutex is not correctly released if it goes to the error, so there is a missing unlock in the *error *branch
							pthread_mutex_lock(&thd->ctrl_mutex);
			 | 
		
| 
					 | 
		
					if (pthread_create(&thd->id, NULL, compress_worker_thread_func,  | 
		
									   thd)) {
			 | 
		
					msg("compress: pthread_create() failed: "  | 
		
					"errno = %d", errno);  | 
		
					goto err;  | 
		
							}
			 | 
		
						}
			 | 
		
| 
					 | 
		
					/* Wait for the threads to start */  | 
		
					for (i = 0; i < n; i++) {  | 
		
							comp_thread_ctxt_t *thd = threads + i;
			 | 
		
| 
					 | 
		
					while (thd->started == FALSE)  | 
		
								pthread_cond_wait(&thd->ctrl_cond, &thd->ctrl_mutex);
			 | 
		
							pthread_mutex_unlock(&thd->ctrl_mutex);
			 | 
		
						}
			 | 
		
| 
					 | 
		
					return threads;  | 
		
| 
					 | 
		
					err:
			 | 
		
						my_free(threads);
			 | 
		
					return NULL;  | 
		
					}
			 |