gecko-dev/ipc/glue/BrowserProcessSubThread.cpp
Jed Davis 8c61fa8fde Bug 1656101 - Delete some IPC dead code (BrowserProcessSubThread types and an unused header). r=mccr8
An actual use of the `BACKGROUND_X11` thread may have briefly existed in
2009 but probably never shipped; it's been unused since then, and even
the comments mentioning it have been pruned (bug 909028, bug 624422).
The other thread types besides IO have been commented out ever since
they were first committed.

This patch also removes `x11_util.h`, which has been unused since 2017
(bug 1426284); earlier in history, it had one of those comments
mentioning the nonexistent X11 thread.

Differential Revision: https://phabricator.services.mozilla.com/D85346
2020-07-29 23:31:38 +00:00

74 lines
1.9 KiB
C++

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/ipc/BrowserProcessSubThread.h"
#if defined(OS_WIN)
# include <objbase.h>
#endif
namespace mozilla {
namespace ipc {
//
// BrowserProcessSubThread
//
// Friendly names for the well-known threads.
static const char* kBrowserThreadNames[BrowserProcessSubThread::ID_COUNT] = {
"Gecko_IOThread", // IO
};
/* static */
StaticMutex BrowserProcessSubThread::sLock;
BrowserProcessSubThread* BrowserProcessSubThread::sBrowserThreads[ID_COUNT] = {
nullptr, // IO
};
BrowserProcessSubThread::BrowserProcessSubThread(ID aId)
: base::Thread(kBrowserThreadNames[aId]), mIdentifier(aId) {
StaticMutexAutoLock lock(sLock);
DCHECK(aId >= 0 && aId < ID_COUNT);
DCHECK(sBrowserThreads[aId] == nullptr);
sBrowserThreads[aId] = this;
}
BrowserProcessSubThread::~BrowserProcessSubThread() {
Stop();
{
StaticMutexAutoLock lock(sLock);
sBrowserThreads[mIdentifier] = nullptr;
}
}
void BrowserProcessSubThread::Init() {
#if defined(OS_WIN)
// Initializes the COM library on the current thread.
CoInitialize(nullptr);
#endif
}
void BrowserProcessSubThread::CleanUp() {
#if defined(OS_WIN)
// Closes the COM library on the current thread. CoInitialize must
// be balanced by a corresponding call to CoUninitialize.
CoUninitialize();
#endif
}
// static
MessageLoop* BrowserProcessSubThread::GetMessageLoop(ID aId) {
StaticMutexAutoLock lock(sLock);
DCHECK(aId >= 0 && aId < ID_COUNT);
if (sBrowserThreads[aId]) return sBrowserThreads[aId]->message_loop();
return nullptr;
}
} // namespace ipc
} // namespace mozilla