[libvirt] [PATCH 13/20] test: Convert testDriver to virObjectLockable
Marc Hartmayer
mhartmay at linux.vnet.ibm.com
Thu Mar 15 16:15:46 UTC 2018
On Thu, Mar 15, 2018 at 04:05 PM +0100, John Ferlan <jferlan at redhat.com> wrote:
> On 03/08/2018 07:20 AM, Marc Hartmayer wrote:
>> The test driver state (@testDriver) uses it's own reference counting
>> and locking implementation. Instead of doing that, convert @testDriver
>> into a virObjectLockable and use the provided functionalities.
>>
>> Signed-off-by: Marc Hartmayer <mhartmay at linux.vnet.ibm.com>
>> Reviewed-by: Boris Fiuczynski <fiuczy at linux.vnet.ibm.com>
>> ---
>> src/test/test_driver.c | 207 ++++++++++++++++++++++---------------------------
>> 1 file changed, 94 insertions(+), 113 deletions(-)
>>
>> diff --git a/src/test/test_driver.c b/src/test/test_driver.c
>> index 3b55453efe00..f1dd11867143 100644
>> --- a/src/test/test_driver.c
>> +++ b/src/test/test_driver.c
>> @@ -94,7 +94,7 @@ typedef struct _testAuth testAuth;
>> typedef struct _testAuth *testAuthPtr;
>>
>> struct _testDriver {
>> - virMutex lock;
>> + virObjectLockable parent;
>>
>> virNodeInfo nodeInfo;
>> virInterfaceObjListPtr ifaces;
>> @@ -127,9 +127,22 @@ typedef struct _testDriver testDriver;
>> typedef testDriver *testDriverPtr;
>>
>> static testDriverPtr defaultPrivconn;
>
> Oh and of course I see the pain associated with changing the name (and
> perhaps initializing to NULL just to be painfully obvious).
>
>> -static int defaultConnections;
>> static virMutex defaultLock = VIR_MUTEX_INITIALIZER;
>>
>
> [...]
>
>> @@ -1433,24 +1427,11 @@ testConnectAuthenticate(virConnectPtr conn,
>> static void
>> testDriverCloseInternal(testDriverPtr driver)
>> {
>> - bool dflt = false;
>> -
>> - if (driver == defaultPrivconn) {
>> - dflt = true;
>> - virMutexLock(&defaultLock);
>> - if (--defaultConnections) {
>> - virMutexUnlock(&defaultLock);
>> - return;
>> - }
>> - }
>> -
>> - testDriverLock(driver);
>> - testDriverFree(driver);
>> -
>> - if (dflt) {
>> + virMutexLock(&defaultLock);
>> + bool disposed = !virObjectUnref(driver);
>
> I know it builds, but it's preferable to not intermingle defs inside
> code, e.g. change to:
>
> bool disposed = false;
>
> virMutexLock(&defaultLock);
> disposed = !virObjectUnref(driver);
>
> Reviewed-by: John Ferlan <jferlan at redhat.com>
>
> John
>
> (another one of those things I can do)
Thanks!
>
>> + if (disposed && driver == defaultPrivconn)
>> defaultPrivconn = NULL;
>> - virMutexUnlock(&defaultLock);
>> - }
>> + virMutexUnlock(&defaultLock);
>> }
>>
>>
> [...]
>
--
Beste Grüße / Kind regards
Marc Hartmayer
IBM Deutschland Research & Development GmbH
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
More information about the libvir-list
mailing list