| Index: runtime/bin/eventhandler.h
|
| diff --git a/runtime/bin/eventhandler.h b/runtime/bin/eventhandler.h
|
| index a2ecaafc58733a45fe739dcb105f56d6c9568bb2..39200847165964dcaf5881ce64e4c578f4985b67 100644
|
| --- a/runtime/bin/eventhandler.h
|
| +++ b/runtime/bin/eventhandler.h
|
| @@ -6,6 +6,7 @@
|
| #define BIN_EVENTHANDLER_H_
|
|
|
| #include "bin/builtin.h"
|
| +#include "bin/thread_pool.h"
|
|
|
| // Flags used to provide information and actions to the eventhandler
|
| // when sending a message about a file descriptor. These flags should
|
| @@ -41,6 +42,29 @@ class EventHandler {
|
| delegate_.SendData(id, dart_port, data);
|
| }
|
|
|
| + static void* AsyncTaskHandler(void* args) {
|
| + if (Dart_IsVMFlagSet("trace_thread_pool")) {
|
| + printf("Got async task\n");
|
| + }
|
| + return NULL;
|
| + }
|
| +
|
| + static void Initialize() {
|
| + if (Dart_IsVMFlagSet("enable_thread_pool")) {
|
| + ASSERT(thread_pool_ == NULL);
|
| + thread_pool_ = new ThreadPool(&EventHandler::AsyncTaskHandler);
|
| + thread_pool_->Start();
|
| + }
|
| + }
|
| +
|
| + static void Terminate() {
|
| + if (Dart_IsVMFlagSet("enable_thread_pool")) {
|
| + if (thread_pool_ != NULL) {
|
| + thread_pool_->Shutdown();
|
| + }
|
| + }
|
| + }
|
| +
|
| static EventHandler* StartEventHandler() {
|
| EventHandler* handler = new EventHandler();
|
| handler->delegate_.StartEventHandler();
|
| @@ -49,6 +73,7 @@ class EventHandler {
|
|
|
| private:
|
| EventHandlerImplementation delegate_;
|
| + static ThreadPool* thread_pool_;
|
| };
|
|
|
|
|
|
|