// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. #ifndef VM_THREAD_LINUX_H_ #define VM_THREAD_LINUX_H_ #include #include "vm/globals.h" namespace dart { class ThreadData { private: ThreadData() {} ~ThreadData() {} pthread_t* tid() { return &tid_; } pthread_t tid_; friend class Thread; DISALLOW_ALLOCATION(); DISALLOW_COPY_AND_ASSIGN(ThreadData); }; class MutexData { private: MutexData() {} ~MutexData() {} pthread_mutex_t* mutex() { return &mutex_; } pthread_mutex_t mutex_; friend class Mutex; DISALLOW_ALLOCATION(); DISALLOW_COPY_AND_ASSIGN(MutexData); }; class MonitorData { private: MonitorData() {} ~MonitorData() {} pthread_mutex_t* mutex() { return &mutex_; } pthread_cond_t* cond() { return &cond_; } pthread_mutex_t mutex_; pthread_cond_t cond_; friend class Monitor; DISALLOW_ALLOCATION(); DISALLOW_COPY_AND_ASSIGN(MonitorData); }; } // namespace dart #endif // VM_THREAD_LINUX_H_