| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 FOR_EACH_OBSERVER(DestructionObserver, destruction_observers_, | 214 FOR_EACH_OBSERVER(DestructionObserver, destruction_observers_, |
| 215 WillDestroyCurrentMessageLoop()); | 215 WillDestroyCurrentMessageLoop()); |
| 216 | 216 |
| 217 thread_task_runner_handle_.reset(); | 217 thread_task_runner_handle_.reset(); |
| 218 | 218 |
| 219 // Tell the message_loop_proxy that we are dying. | 219 // Tell the message_loop_proxy that we are dying. |
| 220 static_cast<MessageLoopProxyImpl*>(message_loop_proxy_.get())-> | 220 static_cast<MessageLoopProxyImpl*>(message_loop_proxy_.get())-> |
| 221 WillDestroyCurrentMessageLoop(); | 221 WillDestroyCurrentMessageLoop(); |
| 222 message_loop_proxy_ = NULL; | 222 message_loop_proxy_ = NULL; |
| 223 | 223 |
| 224 // Stop the message pump and free any thread-bound resources. | |
| 225 pump_->Shutdown(); | |
| 226 | |
| 227 // OK, now make it so that no one can find us. | 224 // OK, now make it so that no one can find us. |
| 228 lazy_tls_ptr.Pointer()->Set(NULL); | 225 lazy_tls_ptr.Pointer()->Set(NULL); |
| 229 | 226 |
| 230 #if defined(OS_WIN) | 227 #if defined(OS_WIN) |
| 231 // If we left the high-resolution timer activated, deactivate it now. | 228 // If we left the high-resolution timer activated, deactivate it now. |
| 232 // Doing this is not-critical, it is mainly to make sure we track | 229 // Doing this is not-critical, it is mainly to make sure we track |
| 233 // the high resolution timer activations properly in our unit tests. | 230 // the high resolution timer activations properly in our unit tests. |
| 234 if (!high_resolution_timer_expiration_.is_null()) { | 231 if (!high_resolution_timer_expiration_.is_null()) { |
| 235 Time::ActivateHighResolutionTimer(false); | 232 Time::ActivateHighResolutionTimer(false); |
| 236 high_resolution_timer_expiration_ = TimeTicks(); | 233 high_resolution_timer_expiration_ = TimeTicks(); |
| (...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 828 fd, | 825 fd, |
| 829 persistent, | 826 persistent, |
| 830 mode, | 827 mode, |
| 831 controller, | 828 controller, |
| 832 delegate); | 829 delegate); |
| 833 } | 830 } |
| 834 | 831 |
| 835 #endif | 832 #endif |
| 836 | 833 |
| 837 } // namespace base | 834 } // namespace base |
| OLD | NEW |