| Index: src/platform/mutex.h
 | 
| diff --git a/src/platform/mutex.h b/src/platform/mutex.h
 | 
| deleted file mode 100644
 | 
| index 1e9346899591569df86a73929bc4a158dd4a6b9a..0000000000000000000000000000000000000000
 | 
| --- a/src/platform/mutex.h
 | 
| +++ /dev/null
 | 
| @@ -1,216 +0,0 @@
 | 
| -// Copyright 2013 the V8 project authors. All rights reserved.
 | 
| -// Use of this source code is governed by a BSD-style license that can be
 | 
| -// found in the LICENSE file.
 | 
| -
 | 
| -#ifndef V8_PLATFORM_MUTEX_H_
 | 
| -#define V8_PLATFORM_MUTEX_H_
 | 
| -
 | 
| -#include "src/base/lazy-instance.h"
 | 
| -#if V8_OS_WIN
 | 
| -#include "src/base/win32-headers.h"
 | 
| -#endif
 | 
| -#include "src/checks.h"
 | 
| -
 | 
| -#if V8_OS_POSIX
 | 
| -#include <pthread.h>  // NOLINT
 | 
| -#endif
 | 
| -
 | 
| -namespace v8 {
 | 
| -namespace internal {
 | 
| -
 | 
| -// ----------------------------------------------------------------------------
 | 
| -// Mutex
 | 
| -//
 | 
| -// This class is a synchronization primitive that can be used to protect shared
 | 
| -// data from being simultaneously accessed by multiple threads. A mutex offers
 | 
| -// exclusive, non-recursive ownership semantics:
 | 
| -// - A calling thread owns a mutex from the time that it successfully calls
 | 
| -//   either |Lock()| or |TryLock()| until it calls |Unlock()|.
 | 
| -// - When a thread owns a mutex, all other threads will block (for calls to
 | 
| -//   |Lock()|) or receive a |false| return value (for |TryLock()|) if they
 | 
| -//   attempt to claim ownership of the mutex.
 | 
| -// A calling thread must not own the mutex prior to calling |Lock()| or
 | 
| -// |TryLock()|. The behavior of a program is undefined if a mutex is destroyed
 | 
| -// while still owned by some thread. The Mutex class is non-copyable.
 | 
| -
 | 
| -class Mutex V8_FINAL {
 | 
| - public:
 | 
| -  Mutex();
 | 
| -  ~Mutex();
 | 
| -
 | 
| -  // Locks the given mutex. If the mutex is currently unlocked, it becomes
 | 
| -  // locked and owned by the calling thread, and immediately. If the mutex
 | 
| -  // is already locked by another thread, suspends the calling thread until
 | 
| -  // the mutex is unlocked.
 | 
| -  void Lock();
 | 
| -
 | 
| -  // Unlocks the given mutex. The mutex is assumed to be locked and owned by
 | 
| -  // the calling thread on entrance.
 | 
| -  void Unlock();
 | 
| -
 | 
| -  // Tries to lock the given mutex. Returns whether the mutex was
 | 
| -  // successfully locked.
 | 
| -  bool TryLock() V8_WARN_UNUSED_RESULT;
 | 
| -
 | 
| -  // The implementation-defined native handle type.
 | 
| -#if V8_OS_POSIX
 | 
| -  typedef pthread_mutex_t NativeHandle;
 | 
| -#elif V8_OS_WIN
 | 
| -  typedef CRITICAL_SECTION NativeHandle;
 | 
| -#endif
 | 
| -
 | 
| -  NativeHandle& native_handle() {
 | 
| -    return native_handle_;
 | 
| -  }
 | 
| -  const NativeHandle& native_handle() const {
 | 
| -    return native_handle_;
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  NativeHandle native_handle_;
 | 
| -#ifdef DEBUG
 | 
| -  int level_;
 | 
| -#endif
 | 
| -
 | 
| -  V8_INLINE void AssertHeldAndUnmark() {
 | 
| -#ifdef DEBUG
 | 
| -    ASSERT_EQ(1, level_);
 | 
| -    level_--;
 | 
| -#endif
 | 
| -  }
 | 
| -
 | 
| -  V8_INLINE void AssertUnheldAndMark() {
 | 
| -#ifdef DEBUG
 | 
| -    ASSERT_EQ(0, level_);
 | 
| -    level_++;
 | 
| -#endif
 | 
| -  }
 | 
| -
 | 
| -  friend class ConditionVariable;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(Mutex);
 | 
| -};
 | 
| -
 | 
| -
 | 
| -// POD Mutex initialized lazily (i.e. the first time Pointer() is called).
 | 
| -// Usage:
 | 
| -//   static LazyMutex my_mutex = LAZY_MUTEX_INITIALIZER;
 | 
| -//
 | 
| -//   void my_function() {
 | 
| -//     LockGuard<Mutex> guard(my_mutex.Pointer());
 | 
| -//     // Do something.
 | 
| -//   }
 | 
| -//
 | 
| -typedef v8::base::LazyStaticInstance<
 | 
| -    Mutex, v8::base::DefaultConstructTrait<Mutex>,
 | 
| -    v8::base::ThreadSafeInitOnceTrait>::type LazyMutex;
 | 
| -
 | 
| -#define LAZY_MUTEX_INITIALIZER LAZY_STATIC_INSTANCE_INITIALIZER
 | 
| -
 | 
| -
 | 
| -// -----------------------------------------------------------------------------
 | 
| -// RecursiveMutex
 | 
| -//
 | 
| -// This class is a synchronization primitive that can be used to protect shared
 | 
| -// data from being simultaneously accessed by multiple threads. A recursive
 | 
| -// mutex offers exclusive, recursive ownership semantics:
 | 
| -// - A calling thread owns a recursive mutex for a period of time that starts
 | 
| -//   when it successfully calls either |Lock()| or |TryLock()|. During this
 | 
| -//   period, the thread may make additional calls to |Lock()| or |TryLock()|.
 | 
| -//   The period of ownership ends when the thread makes a matching number of
 | 
| -//   calls to |Unlock()|.
 | 
| -// - When a thread owns a recursive mutex, all other threads will block (for
 | 
| -//   calls to |Lock()|) or receive a |false| return value (for |TryLock()|) if
 | 
| -//   they attempt to claim ownership of the recursive mutex.
 | 
| -// - The maximum number of times that a recursive mutex may be locked is
 | 
| -//   unspecified, but after that number is reached, calls to |Lock()| will
 | 
| -//   probably abort the process and calls to |TryLock()| return false.
 | 
| -// The behavior of a program is undefined if a recursive mutex is destroyed
 | 
| -// while still owned by some thread. The RecursiveMutex class is non-copyable.
 | 
| -
 | 
| -class RecursiveMutex V8_FINAL {
 | 
| - public:
 | 
| -  RecursiveMutex();
 | 
| -  ~RecursiveMutex();
 | 
| -
 | 
| -  // Locks the mutex. If another thread has already locked the mutex, a call to
 | 
| -  // |Lock()| will block execution until the lock is acquired. A thread may call
 | 
| -  // |Lock()| on a recursive mutex repeatedly. Ownership will only be released
 | 
| -  // after the thread makes a matching number of calls to |Unlock()|.
 | 
| -  // The behavior is undefined if the mutex is not unlocked before being
 | 
| -  // destroyed, i.e. some thread still owns it.
 | 
| -  void Lock();
 | 
| -
 | 
| -  // Unlocks the mutex if its level of ownership is 1 (there was exactly one
 | 
| -  // more call to |Lock()| than there were calls to unlock() made by this
 | 
| -  // thread), reduces the level of ownership by 1 otherwise. The mutex must be
 | 
| -  // locked by the current thread of execution, otherwise, the behavior is
 | 
| -  // undefined.
 | 
| -  void Unlock();
 | 
| -
 | 
| -  // Tries to lock the given mutex. Returns whether the mutex was
 | 
| -  // successfully locked.
 | 
| -  bool TryLock() V8_WARN_UNUSED_RESULT;
 | 
| -
 | 
| -  // The implementation-defined native handle type.
 | 
| -  typedef Mutex::NativeHandle NativeHandle;
 | 
| -
 | 
| -  NativeHandle& native_handle() {
 | 
| -    return native_handle_;
 | 
| -  }
 | 
| -  const NativeHandle& native_handle() const {
 | 
| -    return native_handle_;
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  NativeHandle native_handle_;
 | 
| -#ifdef DEBUG
 | 
| -  int level_;
 | 
| -#endif
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(RecursiveMutex);
 | 
| -};
 | 
| -
 | 
| -
 | 
| -// POD RecursiveMutex initialized lazily (i.e. the first time Pointer() is
 | 
| -// called).
 | 
| -// Usage:
 | 
| -//   static LazyRecursiveMutex my_mutex = LAZY_RECURSIVE_MUTEX_INITIALIZER;
 | 
| -//
 | 
| -//   void my_function() {
 | 
| -//     LockGuard<RecursiveMutex> guard(my_mutex.Pointer());
 | 
| -//     // Do something.
 | 
| -//   }
 | 
| -//
 | 
| -typedef v8::base::LazyStaticInstance<
 | 
| -    RecursiveMutex, v8::base::DefaultConstructTrait<RecursiveMutex>,
 | 
| -    v8::base::ThreadSafeInitOnceTrait>::type LazyRecursiveMutex;
 | 
| -
 | 
| -#define LAZY_RECURSIVE_MUTEX_INITIALIZER LAZY_STATIC_INSTANCE_INITIALIZER
 | 
| -
 | 
| -
 | 
| -// -----------------------------------------------------------------------------
 | 
| -// LockGuard
 | 
| -//
 | 
| -// This class is a mutex wrapper that provides a convenient RAII-style mechanism
 | 
| -// for owning a mutex for the duration of a scoped block.
 | 
| -// When a LockGuard object is created, it attempts to take ownership of the
 | 
| -// mutex it is given. When control leaves the scope in which the LockGuard
 | 
| -// object was created, the LockGuard is destructed and the mutex is released.
 | 
| -// The LockGuard class is non-copyable.
 | 
| -
 | 
| -template <typename Mutex>
 | 
| -class LockGuard V8_FINAL {
 | 
| - public:
 | 
| -  explicit LockGuard(Mutex* mutex) : mutex_(mutex) { mutex_->Lock(); }
 | 
| -  ~LockGuard() { mutex_->Unlock(); }
 | 
| -
 | 
| - private:
 | 
| -  Mutex* mutex_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(LockGuard);
 | 
| -};
 | 
| -
 | 
| -} }  // namespace v8::internal
 | 
| -
 | 
| -#endif  // V8_PLATFORM_MUTEX_H_
 | 
| 
 |