thread.h revision 5821806d5e7f356e8fa4b058a389a808ea183019
1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2009 The RE2 Authors. All Rights Reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// license that can be found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef RE2_UTIL_THREAD_H__ 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define RE2_UTIL_THREAD_H__ 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include <pthread.h> 9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass Thread { 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public: 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch Thread(); 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual ~Thread(); 14116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void Start(); 15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void Join(); 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch void SetJoinable(bool); 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch virtual void Run() = 0; 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private: 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch pthread_t pid_; 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool running_; 22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bool joinable_; 23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}; 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif // RE2_UTIL_THREAD_H__ 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch