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

Side by Side Diff: runtime/vm/os_thread.h

Issue 1275353005: VM thread shutdown. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Merge Created 5 years, 3 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
« no previous file with comments | « runtime/vm/message_handler.cc ('k') | runtime/vm/os_thread_android.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, 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 VM_OS_THREAD_H_ 5 #ifndef VM_OS_THREAD_H_
6 #define VM_OS_THREAD_H_ 6 #define VM_OS_THREAD_H_
7 7
8 #include "platform/globals.h" 8 #include "platform/globals.h"
9 #include "vm/globals.h" 9 #include "vm/globals.h"
10 10
(...skipping 11 matching lines...) Expand all
22 #endif 22 #endif
23 23
24 namespace dart { 24 namespace dart {
25 25
26 // Low-level operations on OS platform threads. 26 // Low-level operations on OS platform threads.
27 // TODO(koda): Move to runtime/platform. 27 // TODO(koda): Move to runtime/platform.
28 class OSThread { 28 class OSThread {
29 public: 29 public:
30 static ThreadLocalKey kUnsetThreadLocalKey; 30 static ThreadLocalKey kUnsetThreadLocalKey;
31 static ThreadId kInvalidThreadId; 31 static ThreadId kInvalidThreadId;
32 static ThreadJoinId kInvalidThreadJoinId;
32 33
33 typedef void (*ThreadStartFunction) (uword parameter); 34 typedef void (*ThreadStartFunction) (uword parameter);
34 typedef void (*ThreadDestructor) (void* parameter); 35 typedef void (*ThreadDestructor) (void* parameter);
35 36
36 // Start a thread running the specified function. Returns 0 if the 37 // Start a thread running the specified function. Returns 0 if the
37 // thread started successfuly and a system specific error code if 38 // thread started successfuly and a system specific error code if
38 // the thread failed to start. 39 // the thread failed to start.
39 static int Start(ThreadStartFunction function, uword parameters); 40 static int Start(ThreadStartFunction function, uword parameters);
40 41
41 // NOTE: Destructor currently ignored on Windows (issue 23474). 42 // NOTE: Destructor currently ignored on Windows (issue 23474).
42 static ThreadLocalKey CreateThreadLocal(ThreadDestructor destructor = NULL); 43 static ThreadLocalKey CreateThreadLocal(ThreadDestructor destructor = NULL);
43 static void DeleteThreadLocal(ThreadLocalKey key); 44 static void DeleteThreadLocal(ThreadLocalKey key);
44 static uword GetThreadLocal(ThreadLocalKey key) { 45 static uword GetThreadLocal(ThreadLocalKey key) {
45 return ThreadInlineImpl::GetThreadLocal(key); 46 return ThreadInlineImpl::GetThreadLocal(key);
46 } 47 }
47 static void SetThreadLocal(ThreadLocalKey key, uword value); 48 static void SetThreadLocal(ThreadLocalKey key, uword value);
48 static intptr_t GetMaxStackSize(); 49 static intptr_t GetMaxStackSize();
49 static ThreadId GetCurrentThreadId(); 50 static ThreadId GetCurrentThreadId();
50 static intptr_t CurrentCurrentThreadIdAsIntPtr() { 51 static intptr_t CurrentCurrentThreadIdAsIntPtr() {
51 return ThreadIdToIntPtr(GetCurrentThreadId()); 52 return ThreadIdToIntPtr(GetCurrentThreadId());
52 } 53 }
53 static bool Join(ThreadId id); 54 static ThreadJoinId GetCurrentThreadJoinId();
55 static void Join(ThreadJoinId id);
54 static intptr_t ThreadIdToIntPtr(ThreadId id); 56 static intptr_t ThreadIdToIntPtr(ThreadId id);
55 static ThreadId ThreadIdFromIntPtr(intptr_t id); 57 static ThreadId ThreadIdFromIntPtr(intptr_t id);
56 static bool Compare(ThreadId a, ThreadId b); 58 static bool Compare(ThreadId a, ThreadId b);
57 static void GetThreadCpuUsage(ThreadId thread_id, int64_t* cpu_usage); 59 static void GetThreadCpuUsage(ThreadId thread_id, int64_t* cpu_usage);
58 }; 60 };
59 61
60 62
61 class Mutex { 63 class Mutex {
62 public: 64 public:
63 Mutex(); 65 Mutex();
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 MonitorData data_; // OS-specific data. 112 MonitorData data_; // OS-specific data.
111 113
112 DISALLOW_COPY_AND_ASSIGN(Monitor); 114 DISALLOW_COPY_AND_ASSIGN(Monitor);
113 }; 115 };
114 116
115 117
116 } // namespace dart 118 } // namespace dart
117 119
118 120
119 #endif // VM_OS_THREAD_H_ 121 #endif // VM_OS_THREAD_H_
OLDNEW
« no previous file with comments | « runtime/vm/message_handler.cc ('k') | runtime/vm/os_thread_android.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698