1 /* 2 * Copyright 2012 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkThreadUtils_DEFINED 9 #define SkThreadUtils_DEFINED 10 11 #include "SkTypes.h" 12 13 class SkThread : SkNoncopyable { 14 public: 15 typedef void (*entryPointProc)(void*); 16 17 SkThread(entryPointProc entryPoint, void* data = nullptr); 18 19 /** 20 * Non-virtual, do not subclass. 21 */ 22 ~SkThread(); 23 24 /** 25 * Starts the thread. Returns false if the thread could not be started. 26 */ 27 bool start(); 28 29 /** 30 * Waits for the thread to finish. 31 * If the thread has not started, returns immediately. 32 */ 33 void join(); 34 35 private: 36 void* fData; 37 }; 38 39 #endif 40