diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-02 15:31:56 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-02 15:31:56 +0000 |
commit | d583c3a30db9474b0dcef5128ec6901c8ff23b98 (patch) | |
tree | 227db6cd60ac59d5e4990d1afa9de091af5295db /chrome_frame | |
parent | 4bacb82375e04d44967e71afc1fa6e1018f9810b (diff) | |
download | chromium_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.cc | 4 | ||||
-rw-r--r-- | chrome_frame/urlmon_url_request.cc | 1 | ||||
-rw-r--r-- | chrome_frame/utils.h | 3 |
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)); } |