зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1372356 - Use LookupForAdd instead of Get+Put to avoid unnecessary hashtable lookups. r=froydnj
MozReview-Commit-ID: 4jKIhueYx13
This commit is contained in:
Родитель
5f77c14065
Коммит
70e1ca483d
|
@ -1646,13 +1646,13 @@ RuntimeService::RegisterWorker(WorkerPrivate* aWorkerPrivate)
|
|||
{
|
||||
MutexAutoLock lock(mMutex);
|
||||
|
||||
if (!mDomainMap.Get(domain, &domainInfo)) {
|
||||
NS_ASSERTION(!parent, "Shouldn't have a parent here!");
|
||||
|
||||
domainInfo = new WorkerDomainInfo();
|
||||
domainInfo->mDomain = domain;
|
||||
mDomainMap.Put(domain, domainInfo);
|
||||
}
|
||||
domainInfo = mDomainMap.LookupForAdd(domain).OrInsert(
|
||||
[&domain, parent] () {
|
||||
NS_ASSERTION(!parent, "Shouldn't have a parent here!");
|
||||
WorkerDomainInfo* wdi = new WorkerDomainInfo();
|
||||
wdi->mDomain = domain;
|
||||
return wdi;
|
||||
});
|
||||
|
||||
queued = gMaxWorkersPerDomain &&
|
||||
domainInfo->ActiveWorkerCount() >= gMaxWorkersPerDomain &&
|
||||
|
|
Загрузка…
Ссылка в новой задаче