On 01/23/2014 03:46 PM, Daniel P. Berrange wrote: > On Thu, Jan 23, 2014 at 03:22:53PM +0200, Laine Stump wrote: >> On 01/23/2014 02:37 PM, Daniel P. Berrange wrote: >>> Add virRWLock backed up by a POSIX rwlock primitive >>> >>> Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> >>> --- >>> src/libvirt_private.syms | 5 +++++ >>> src/util/virthread.h | 10 ++++++++++ >>> src/util/virthreadpthread.c | 31 +++++++++++++++++++++++++++++++ >>> src/util/virthreadpthread.h | 4 ++++ >>> 4 files changed, 50 insertions(+) >>> >>> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms >>> index d1a58f9..eb91693 100644 >>> --- a/src/libvirt_private.syms >>> +++ b/src/libvirt_private.syms >>> @@ -1816,6 +1816,11 @@ virMutexInitRecursive; >>> virMutexLock; >>> virMutexUnlock; >>> virOnce; >>> +virRWLockInit; >>> +virRWLockDestroy; >>> +virRWLockRead; >>> +virRWLockWrite; >>> +virRWLockUnlock; >> These are out of order. >> >>> virThreadCancel; >>> virThreadCreate; >>> virThreadID; >>> diff --git a/src/util/virthread.h b/src/util/virthread.h >>> index 84d3bdc..7015d60 100644 >>> --- a/src/util/virthread.h >>> +++ b/src/util/virthread.h >>> @@ -28,6 +28,9 @@ >>> typedef struct virMutex virMutex; >>> typedef virMutex *virMutexPtr; >>> >>> +typedef struct virRWLock virRWLock; >>> +typedef virRWLock *virRWLockPtr; >>> + >>> typedef struct virCond virCond; >>> typedef virCond *virCondPtr; >>> >>> @@ -89,6 +92,13 @@ void virMutexLock(virMutexPtr m); >>> void virMutexUnlock(virMutexPtr m); >>> >>> >>> +int virRWLockInit(virRWLockPtr m) ATTRIBUTE_RETURN_CHECK; >>> +void virRWLockDestroy(virRWLockPtr m); >>> + >>> +void virRWLockRead(virRWLockPtr m); >>> +void virRWLockWrite(virRWLockPtr m); >>> +void virRWLockUnlock(virRWLockPtr m); >>> + >> I was about to predict a build failure on Windows since you haven't >> defined these functions in virthreadwin32.c, but then realized you >> aren't yet calling them from anywhere, so the build will complete just fine. >> >> It would reduce code motion a bit to swap this patch with patch 2, but >> functionally there's no difference. > FYI the reason I did it in this order, is to make it easier to > backport to the stable branches. eg on the stable branches I'd > want to skip patch 2, since that's going to require a gnulib > update too. Aha. Totally worth it then! -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list