| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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 // WARNING: You should probably be using Thread (thread.h) instead. Thread is | 5 // WARNING: You should probably be using Thread (thread.h) instead. Thread is |
| 6 // Chrome's message-loop based Thread abstraction, and if you are a | 6 // Chrome's message-loop based Thread abstraction, and if you are a |
| 7 // thread running in the browser, there will likely be assumptions | 7 // thread running in the browser, there will likely be assumptions |
| 8 // that your thread will have an associated message loop. | 8 // that your thread will have an associated message loop. |
| 9 // | 9 // |
| 10 // This is a simple thread interface that backs to a native operating system | 10 // This is a simple thread interface that backs to a native operating system |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 | 67 |
| 68 // Allow copies. | 68 // Allow copies. |
| 69 Options(const Options& other) = default; | 69 Options(const Options& other) = default; |
| 70 Options& operator=(const Options& other) = default; | 70 Options& operator=(const Options& other) = default; |
| 71 | 71 |
| 72 // A custom stack size, or 0 for the system default. | 72 // A custom stack size, or 0 for the system default. |
| 73 size_t stack_size = 0; | 73 size_t stack_size = 0; |
| 74 | 74 |
| 75 ThreadPriority priority = ThreadPriority::NORMAL; | 75 ThreadPriority priority = ThreadPriority::NORMAL; |
| 76 | 76 |
| 77 // If false, the thread's PlatformThreadHandle will not be kept around and | 77 // If false, the underlying thread's PlatformThreadHandle will not be kept |
| 78 // the SimpleThread instance will not be required to be Join()'ed before | 78 // around and as such the SimpleThread instance will not be Join()able and |
| 79 // being destroyed | 79 // will have to be leaked. Useful for threads that want to have |
| 80 // TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN semantics. Note: leaking a |
| 81 // joinable thread would effictively have the same semantics, but making it |
| 82 // non-joinable is cleaner as not keeping the PlatformThreadHandle around |
| 83 // has the advantage of letting the system release resources associated with |
| 84 // the thread immediately when it returns from ThreadMain(). |
| 80 bool joinable = true; | 85 bool joinable = true; |
| 81 }; | 86 }; |
| 82 | 87 |
| 83 // Create a SimpleThread. |options| should be used to manage any specific | 88 // Create a SimpleThread. |options| should be used to manage any specific |
| 84 // configuration involving the thread creation and management. | 89 // configuration involving the thread creation and management. |
| 85 // Every thread has a name, in the form of |name_prefix|/TID, for example | 90 // Every thread has a name, in the form of |name_prefix|/TID, for example |
| 86 // "my_thread/321". The thread will not be created until Start() is called. | 91 // "my_thread/321". The thread will not be created until Start() is called. |
| 87 explicit SimpleThread(const std::string& name_prefix); | 92 explicit SimpleThread(const std::string& name_prefix); |
| 88 SimpleThread(const std::string& name_prefix, const Options& options); | 93 SimpleThread(const std::string& name_prefix, const Options& options); |
| 89 | 94 |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 std::queue<Delegate*> delegates_; | 196 std::queue<Delegate*> delegates_; |
| 192 base::Lock lock_; // Locks delegates_ | 197 base::Lock lock_; // Locks delegates_ |
| 193 WaitableEvent dry_; // Not signaled when there is no work to do. | 198 WaitableEvent dry_; // Not signaled when there is no work to do. |
| 194 | 199 |
| 195 DISALLOW_COPY_AND_ASSIGN(DelegateSimpleThreadPool); | 200 DISALLOW_COPY_AND_ASSIGN(DelegateSimpleThreadPool); |
| 196 }; | 201 }; |
| 197 | 202 |
| 198 } // namespace base | 203 } // namespace base |
| 199 | 204 |
| 200 #endif // BASE_THREADING_SIMPLE_THREAD_H_ | 205 #endif // BASE_THREADING_SIMPLE_THREAD_H_ |
| OLD | NEW |