coroutine-lock: Store the coroutine in the CoWaitRecord only once
When taking the slow path for mutex acquisition, set the coroutine value in the CoWaitRecord in push_waiter(), rather than both there and in the caller. Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: David Edmondson <david.edmondson@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-id: 20210325112941.365238-4-pbonzini@redhat.com Message-Id: <20210309144015.557477-4-david.edmondson@oracle.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
		
				
					committed by
					
						
						Stefan Hajnoczi
					
				
			
			
				
	
			
			
			
						parent
						
							07ee2ab4fd
						
					
				
				
					commit
					2f6ef0393b
				
			@@ -204,7 +204,6 @@ static void coroutine_fn qemu_co_mutex_lock_slowpath(AioContext *ctx,
 | 
			
		||||
    unsigned old_handoff;
 | 
			
		||||
 | 
			
		||||
    trace_qemu_co_mutex_lock_entry(mutex, self);
 | 
			
		||||
    w.co = self;
 | 
			
		||||
    push_waiter(mutex, &w);
 | 
			
		||||
 | 
			
		||||
    /* This is the "Responsibility Hand-Off" protocol; a lock() picks from
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user