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

Side by Side Diff: runtime/platform/thread_macos.h

Issue 463993002: - Separate the thread implementation used in bin/ and vm/ (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 4 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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 #ifndef PLATFORM_THREAD_MACOS_H_
6 #define PLATFORM_THREAD_MACOS_H_
7
8 #if !defined(PLATFORM_THREAD_H_)
9 #error Do not include thread_macos.h directly; use thread.h instead.
10 #endif
11
12 #include <pthread.h>
13
14 #include "platform/assert.h"
15 #include "platform/globals.h"
16
17 namespace dart {
18
19 typedef pthread_key_t ThreadLocalKey;
20 typedef pthread_t ThreadId;
21
22 class ThreadInlineImpl {
23 private:
24 ThreadInlineImpl() {}
25 ~ThreadInlineImpl() {}
26
27 static uword GetThreadLocal(ThreadLocalKey key) {
28 static ThreadLocalKey kUnsetThreadLocalKey = static_cast<pthread_key_t>(-1);
29 ASSERT(key != kUnsetThreadLocalKey);
30 return reinterpret_cast<uword>(pthread_getspecific(key));
31 }
32
33 friend class Thread;
34
35 DISALLOW_ALLOCATION();
36 DISALLOW_COPY_AND_ASSIGN(ThreadInlineImpl);
37 };
38
39
40 class MutexData {
41 private:
42 MutexData() {}
43 ~MutexData() {}
44
45 pthread_mutex_t* mutex() { return &mutex_; }
46
47 pthread_mutex_t mutex_;
48
49 friend class Mutex;
50
51 DISALLOW_ALLOCATION();
52 DISALLOW_COPY_AND_ASSIGN(MutexData);
53 };
54
55
56 class MonitorData {
57 private:
58 MonitorData() {}
59 ~MonitorData() {}
60
61 pthread_mutex_t* mutex() { return &mutex_; }
62 pthread_cond_t* cond() { return &cond_; }
63
64 pthread_mutex_t mutex_;
65 pthread_cond_t cond_;
66
67 friend class Monitor;
68
69 DISALLOW_ALLOCATION();
70 DISALLOW_COPY_AND_ASSIGN(MonitorData);
71 };
72
73 } // namespace dart
74
75 #endif // PLATFORM_THREAD_MACOS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698