mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-23 13:05:27 +00:00
Revert fd066925440ba48acc95d8f31b2c98b1cc9d582d
Commit fd066925440ba48acc95d8f31b2c98b1cc9d582d tried to fix a race condition in commit fa9595003d043df9f2efe95521c00898cef27106 Author: Daniel P. Berrange <berrange@redhat.com> Date: Fri Nov 11 15:28:41 2011 +0000 Explicitly track whether the buck is held in remote client Unfortunately there is a second race condition whereby the event loop can trigger due to incoming data to read. Revert this fix, so a complete fix for the problem can be cleanly applied * src/rpc/virnetclient.c: Revert fd066925440ba48acc95d8f31b2c98b1cc9d582d
This commit is contained in:
parent
284230199a
commit
50a4f49c19
@ -1545,7 +1545,6 @@ static int virNetClientIO(virNetClientPtr client,
|
||||
virNetClientCallQueue(&client->waitDispatch, thiscall);
|
||||
|
||||
/* Check to see if another thread is dispatching */
|
||||
recheck:
|
||||
if (client->haveTheBuck) {
|
||||
char ignore = 1;
|
||||
|
||||
@ -1593,13 +1592,7 @@ recheck:
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* Grr, someone might have passed the buck onto us ... */
|
||||
|
||||
/* We need to re-check if the buck has been passed to this thread
|
||||
* as this thread might have been signalled to wake up, but another
|
||||
* call might acquire the lock before this thread manages to wake up.
|
||||
* This could cause that two threads claim they have the buck */
|
||||
goto recheck;
|
||||
/* Grr, someone passed the buck onto us ... */
|
||||
}
|
||||
|
||||
VIR_DEBUG("We have the buck %p %p", client->waitDispatch, thiscall);
|
||||
|
Loading…
x
Reference in New Issue
Block a user