Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(773)

Side by Side Diff: runtime/bin/eventhandler_linux.h

Issue 8983017: Start of thread pool implementation (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix compilation on Windows Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef BIN_EVENTHANDLER_LINUX_H_ 5 #ifndef BIN_EVENTHANDLER_LINUX_H_
6 #define BIN_EVENTHANDLER_LINUX_H_ 6 #define BIN_EVENTHANDLER_LINUX_H_
7 7
8 #include <unistd.h> 8 #include <unistd.h>
9 #include <sys/socket.h> 9 #include <sys/socket.h>
10 10
11 #include "bin/thread_pool.h"
11 12
12 class InterruptMessage { 13 class InterruptMessage {
13 public: 14 public:
14 intptr_t id; 15 intptr_t id;
15 Dart_Port dart_port; 16 Dart_Port dart_port;
16 int64_t data; 17 int64_t data;
17 }; 18 };
18 19
19 20
20 enum PortDataFlags { 21 enum PortDataFlags {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 bool GetInterruptMessage(InterruptMessage* msg); 93 bool GetInterruptMessage(InterruptMessage* msg);
93 struct pollfd* GetPollFds(intptr_t* size); 94 struct pollfd* GetPollFds(intptr_t* size);
94 void HandleEvents(struct pollfd* pollfds, int pollfds_size, int result_size); 95 void HandleEvents(struct pollfd* pollfds, int pollfds_size, int result_size);
95 void HandleTimeout(); 96 void HandleTimeout();
96 static void* Poll(void* args); 97 static void* Poll(void* args);
97 void WakeupHandler(intptr_t id, Dart_Port dart_port, int64_t data); 98 void WakeupHandler(intptr_t id, Dart_Port dart_port, int64_t data);
98 void HandleInterruptFd(); 99 void HandleInterruptFd();
99 void SetPort(intptr_t fd, Dart_Port dart_port, intptr_t mask); 100 void SetPort(intptr_t fd, Dart_Port dart_port, intptr_t mask);
100 intptr_t GetPollEvents(struct pollfd* pollfd); 101 intptr_t GetPollEvents(struct pollfd* pollfd);
101 102
103 ThreadPool thread_pool;
102 SocketData* socket_map_; 104 SocketData* socket_map_;
103 intptr_t socket_map_size_; 105 intptr_t socket_map_size_;
104 int64_t timeout_; // Time for next timeout. 106 int64_t timeout_; // Time for next timeout.
105 Dart_Port timeout_port_; 107 Dart_Port timeout_port_;
106 int interrupt_fds_[2]; 108 int interrupt_fds_[2];
107 }; 109 };
108 110
109 111
110 #endif // BIN_EVENTHANDLER_LINUX_H_ 112 #endif // BIN_EVENTHANDLER_LINUX_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698