1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "build/build_config.h"
6#include "chrome/browser/browser_process_sub_thread.h"
7#include "content/common/notification_service.h"
8
9#if defined(OS_WIN)
10#include <Objbase.h>
11#endif
12
13BrowserProcessSubThread::BrowserProcessSubThread(BrowserThread::ID identifier)
14      : BrowserThread(identifier) {}
15
16BrowserProcessSubThread::~BrowserProcessSubThread() {
17  // We cannot rely on our base class to stop the thread since we want our
18  // CleanUp function to run.
19  Stop();
20}
21
22void BrowserProcessSubThread::Init() {
23#if defined(OS_WIN)
24  // Initializes the COM library on the current thread.
25  CoInitialize(NULL);
26#endif
27
28  notification_service_ = new NotificationService;
29}
30
31void BrowserProcessSubThread::CleanUp() {
32  delete notification_service_;
33  notification_service_ = NULL;
34
35#if defined(OS_WIN)
36  // Closes the COM library on the current thread. CoInitialize must
37  // be balanced by a corresponding call to CoUninitialize.
38  CoUninitialize();
39#endif
40}
41