Android does not support pthread_cancel / pthread_testcancel.


git-svn-id: http://skia.googlecode.com/svn/trunk@3923 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkThreadUtils_pthread.h b/src/utils/SkThreadUtils_pthread.h
index 52b398c..3e10202 100644
--- a/src/utils/SkThreadUtils_pthread.h
+++ b/src/utils/SkThreadUtils_pthread.h
@@ -11,19 +11,33 @@
 #include "SkThreadUtils.h"
 #include <pthread.h>
 
-class SkThread_PThreadData {
+class PThreadEvent : SkNoncopyable {
+public:
+    PThreadEvent();
+    ~PThreadEvent();
+    void trigger();
+    void wait();
+    bool isTriggered();
+
+private:
+    pthread_cond_t fCondition;
+    pthread_mutex_t fConditionMutex;
+    bool fConditionFlag;
+};
+
+class SkThread_PThreadData : SkNoncopyable {
 public:
     SkThread_PThreadData(SkThread::entryPointProc entryPoint, void* data);
     ~SkThread_PThreadData();
     pthread_t fPThread;
     bool fValidPThread;
-    pthread_mutex_t fStartMutex;
-    pthread_cond_t fStartCondition;
+    PThreadEvent fStarted;
+    PThreadEvent fCanceled;
+
     pthread_attr_t fAttr;
 
     void* fParam;
     SkThread::entryPointProc fEntryPoint;
-    bool fStarted;
 };
 
 #endif