1 // Copyright 2013 The Flutter Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_THREAD_H_ 6 #define FLUTTER_SHELL_PLATFORM_FUCHSIA_THREAD_H_ 7 8 #include <pthread.h> 9 10 #include <functional> 11 12 #include <lib/async-loop/cpp/loop.h> 13 14 #include "flutter/fml/macros.h" 15 16 namespace flutter_runner { 17 18 class Thread { 19 public: 20 Thread(); 21 22 ~Thread(); 23 24 void Quit(); 25 26 bool Join(); 27 28 bool IsValid() const; 29 30 async_dispatcher_t* dispatcher() const; 31 32 private: 33 bool valid_; 34 pthread_t thread_; 35 std::unique_ptr<async::Loop> loop_; 36 37 void Main(); 38 39 FML_DISALLOW_COPY_AND_ASSIGN(Thread); 40 }; 41 42 } // namespace flutter_runner 43 44 #endif // FLUTTER_SHELL_PLATFORM_FUCHSIA_THREAD_H_ 45