On 06/28/2011 11:01 AM, Daniel P. Berrange wrote:
If a callback being invoked from a stream issues a virStreamAbort
operation, the stream data will be free'd but the callback will
then stil try to use this. Delay free'ing of the stream data when
s/stil/still/
a callback is dispatching
* src/fdstream.c: Delay stream free when callback is active
---
src/fdstream.c | 33 +++++++++++++++++++++++----------
1 files changed, 23 insertions(+), 10 deletions(-)
cb(stream, events, cbopaque);
virMutexLock(&fdst->lock);
- fdst->dispatching = 0;
+ fdst->dispatching = false;
if (fdst->cbRemoved && ff)
(ff)(cbopaque);
cb is called without locks, while ff is still under the lock. No change
from previous status quo, but I wonder if ff should ever be moved
outside the lock.
ACK.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org