| // Copyright 2009 The RE2 Authors. All Rights Reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| #ifndef RE2_UTIL_THREAD_H__ |
| #define RE2_UTIL_THREAD_H__ |
| |
| #ifdef _WIN32 |
| #include <windows.h> |
| #else |
| #include <pthread.h> |
| #endif |
| |
| class Thread { |
| public: |
| Thread(); |
| virtual ~Thread(); |
| void Start(); |
| void Join(); |
| void SetJoinable(bool); |
| virtual void Run() = 0; |
| |
| private: |
| #ifdef _WIN32 |
| HANDLE pid_; |
| #else |
| pthread_t pid_; |
| #endif |
| bool running_; |
| bool joinable_; |
| }; |
| |
| #endif // RE2_UTIL_THREAD_H__ |