From c1a34c87ea3aeeeda52bdf3b8b1b7e1aa18b65a2 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 24 Jun 2015 15:08:47 +0200 Subject: [PATCH] test: Use atomic access to @nextDomID in struct virTestDriver --- src/test/test_driver.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 0cd8e6a6ad..1d5463959a 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -59,6 +59,7 @@ #include "virstring.h" #include "cpu/cpu.h" #include "virauth.h" +#include "viratomic.h" #define VIR_FROM_THIS VIR_FROM_TEST @@ -95,7 +96,6 @@ typedef struct _testAuth *testAuthPtr; struct _testDriver { virMutex lock; - int nextDomID; virNodeInfo nodeInfo; virInterfaceObjList ifaces; bool transaction_running; @@ -107,6 +107,9 @@ struct _testDriver { size_t numAuths; testAuthPtr auths; + /* virAtomic access only */ + volatile int nextDomID; + /* immutable pointer, immutable object after being initialized with * testBuildCapabilities */ virCapsPtr caps; @@ -417,7 +420,7 @@ testDriverNew(void) !(ret->networks = virNetworkObjListNew())) goto error; - ret->nextDomID = 1; + virAtomicIntSet(&ret->nextDomID, 1); return ret; @@ -712,7 +715,7 @@ testDomainStartState(testDriverPtr privconn, goto cleanup; virDomainObjSetState(dom, VIR_DOMAIN_RUNNING, reason); - dom->def->id = privconn->nextDomID++; + dom->def->id = virAtomicIntAdd(&privconn->nextDomID, 1); if (virDomainObjSetDefTransient(privconn->caps, privconn->xmlopt, -- GitLab