Bug 1372356 - Use LookupForAdd instead of Get+Put to avoid unnecessary hashtable lookups. r=froydnj

MozReview-Commit-ID: 4jKIhueYx13
This commit is contained in:
Mats Palmgren 2017-06-14 17:27:25 +02:00
Родитель 5f77c14065
Коммит 70e1ca483d
1 изменённых файлов: 7 добавлений и 7 удалений

Просмотреть файл

@ -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 &&