mirror of
				https://gitlab.freedesktop.org/wayland/wayland.git
				synced 2025-11-03 09:01:42 -05:00 
			
		
		
		
	client: broadcast the right pthread_cond variable
In previous commit we removed unused variables. One of them was pthread_cond_t that was formerly used when reading from display, but later was (erroneously) made unused. This patch fixes this error and is a fix for the failing test introduced few patches ago (tests: test if thread can block on error) Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
		
							parent
							
								
									0cb9862c93
								
							
						
					
					
						commit
						574b710ef8
					
				
					 1 changed files with 16 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -127,6 +127,12 @@ display_fatal_error(struct wl_display *display, int error)
 | 
			
		|||
		error = EFAULT;
 | 
			
		||||
 | 
			
		||||
	display->last_error = error;
 | 
			
		||||
 | 
			
		||||
       pthread_cond_broadcast(&display->reader_cond);
 | 
			
		||||
       /* prevent from indefinite looping in read_events()
 | 
			
		||||
	* (when calling pthread_cond_wait under condition
 | 
			
		||||
	* display->read_serial == serial) */
 | 
			
		||||
       ++display->read_serial;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -175,6 +181,16 @@ display_protocol_error(struct wl_display *display, uint32_t code,
 | 
			
		|||
	display->protocol_error.id = id;
 | 
			
		||||
	display->protocol_error.interface = intf;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * here it is not necessary to broadcast reader's cond like in
 | 
			
		||||
	 * display_fatal_error, because this function is called from
 | 
			
		||||
	 * an event handler and that means that read_events() is done
 | 
			
		||||
	 * and woke up all threads. Since wl_display_prepare_read()
 | 
			
		||||
	 * fails when there are events in the queue, no threads
 | 
			
		||||
	 * can sleep in read_events() during dispatching
 | 
			
		||||
	 * (and therefore during calling this function), so this is safe.
 | 
			
		||||
	 */
 | 
			
		||||
 | 
			
		||||
	pthread_mutex_unlock(&display->mutex);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue