forked from OSchip/llvm-project
Use atomic operations for accessing this global counter.
llvm-svn: 74294
This commit is contained in:
parent
5960e6d974
commit
4a03279231
|
@ -68,9 +68,12 @@ AnnotationID AnnotationManager::getID(const char *Name) { // Name -> ID
|
|||
if (I == E) {
|
||||
sys::SmartScopedWriter<true> Writer(&*AnnotationsLock);
|
||||
I = IDMap->find(Name);
|
||||
if (I == IDMap->end())
|
||||
(*IDMap)[Name] = IDCounter++; // Add a new element
|
||||
return AnnotationID(IDCounter-1);
|
||||
if (I == IDMap->end()) {
|
||||
unsigned newCount = sys::AtomicIncrement(&IDCounter);
|
||||
(*IDMap)[Name] = newCount-1; // Add a new element
|
||||
return AnnotationID(newCount-1);
|
||||
} else
|
||||
return AnnotationID(I->second);
|
||||
}
|
||||
return AnnotationID(I->second);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue