From: Peter Krempa Date: Wed, 24 Jun 2015 13:08:47 +0000 (+0200) Subject: test: Use atomic access to @nextDomID in struct virTestDriver X-Git-Tag: v1.2.17-rc1~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c1a34c87ea3aeeeda52bdf3b8b1b7e1aa18b65a2;p=thirdparty%2Flibvirt.git test: Use atomic access to @nextDomID in struct virTestDriver --- 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,