summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
authorjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-02 15:31:56 +0000
committerjoi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-02 15:31:56 +0000
commitd583c3a30db9474b0dcef5128ec6901c8ff23b98 (patch)
tree227db6cd60ac59d5e4990d1afa9de091af5295db /chrome_frame
parent4bacb82375e04d44967e71afc1fa6e1018f9810b (diff)
downloadchromium_src-d583c3a30db9474b0dcef5128ec6901c8ff23b98.zip
chromium_src-d583c3a30db9474b0dcef5128ec6901c8ff23b98.tar.gz
chromium_src-d583c3a30db9474b0dcef5128ec6901c8ff23b98.tar.bz2
Thread::Stop() must be called before any subclass's destructor completes.
Update base::Thread documentation, fix all subclasses I could find that had a problem, and remove no-longer-necessary suppressions. BUG=102134 Review URL: http://codereview.chromium.org/8427007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108296 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r--chrome_frame/test/urlmon_moniker_integration_test.cc4
-rw-r--r--chrome_frame/urlmon_url_request.cc1
-rw-r--r--chrome_frame/utils.h3
3 files changed, 8 insertions, 0 deletions
diff --git a/chrome_frame/test/urlmon_moniker_integration_test.cc b/chrome_frame/test/urlmon_moniker_integration_test.cc
index 99c0357..0812b53 100644
--- a/chrome_frame/test/urlmon_moniker_integration_test.cc
+++ b/chrome_frame/test/urlmon_moniker_integration_test.cc
@@ -59,6 +59,10 @@ class RunTestServer : public base::Thread {
ready_(::CreateEvent(NULL, TRUE, FALSE, NULL)) {
}
+ ~RunTestServer() {
+ Stop();
+ }
+
bool Start() {
bool ret = StartWithOptions(Options(MessageLoop::TYPE_UI, 0));
if (ret) {
diff --git a/chrome_frame/urlmon_url_request.cc b/chrome_frame/urlmon_url_request.cc
index ea75ccf..221831b 100644
--- a/chrome_frame/urlmon_url_request.cc
+++ b/chrome_frame/urlmon_url_request.cc
@@ -1413,6 +1413,7 @@ UrlmonUrlRequestManager::ResourceFetcherThread::ResourceFetcherThread(
}
UrlmonUrlRequestManager::ResourceFetcherThread::~ResourceFetcherThread() {
+ Stop();
}
void UrlmonUrlRequestManager::ResourceFetcherThread::Init() {
diff --git a/chrome_frame/utils.h b/chrome_frame/utils.h
index 95feac6..c76b2a4 100644
--- a/chrome_frame/utils.h
+++ b/chrome_frame/utils.h
@@ -387,6 +387,9 @@ STDMETHODIMP QueryInterfaceIfDelegateSupports(void* obj, REFIID iid,
class STAThread : public base::Thread {
public:
explicit STAThread(const char *name) : Thread(name) {}
+ ~STAThread() {
+ Stop();
+ }
bool Start() {
return StartWithOptions(Options(MessageLoop::TYPE_UI, 0));
}