| Index: base/synchronization/lock.h | 
| diff --git a/base/synchronization/lock.h b/base/synchronization/lock.h | 
| index fbf6cef76911c80332da1524beeb23fd14737917..fb15c66004457f91ef19080e6d7ff7a38c1c09f1 100644 | 
| --- a/base/synchronization/lock.h | 
| +++ b/base/synchronization/lock.h | 
| @@ -14,6 +14,22 @@ | 
|  | 
| namespace base { | 
|  | 
| +#if defined(OS_POSIX) | 
| + | 
| +// Determines which platforms can consider using priority inheritance locks. If | 
| +// priority inheritance is possible, it does not necessarily mean it's | 
| +// available. Lock::PriorityInheritanceAvailable must still be checked. | 
| +// If you do not require the conditional inclusion at compile time, | 
| +// simply call Lock::PriorityInheritanceAvailable, which will provide the same | 
| +// result. | 
| +#if defined(OS_NACL) || defined(OS_ANDROID) | 
| +#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 0 | 
| +#else | 
| +#define PRIORITY_INHERITANCE_LOCKS_POSSIBLE() 1 | 
| +#endif | 
| + | 
| +#endif | 
| + | 
| // A convenient wrapper for an OS specific critical section.  The only real | 
| // intelligence in this class is in debug mode for the support for the | 
| // AssertAcquired() method. | 
| @@ -61,6 +77,14 @@ class BASE_EXPORT Lock { | 
| void AssertAcquired() const; | 
| #endif  // DCHECK_IS_ON() | 
|  | 
| +#if defined(OS_POSIX) | 
| +  // Whether this platform has priority inheritance available. All locks will | 
| +  // attempt to use the priority inheritance version if available. | 
| +  static bool PriorityInheritanceAvailable() { | 
| +    return internal::LockImpl::PriorityInheritanceAvailable(); | 
| +  } | 
| +#endif | 
| + | 
| #if defined(OS_POSIX) || defined(OS_WIN) | 
| // Both Windows and POSIX implementations of ConditionVariable need to be | 
| // able to see our lock and tweak our debugging counters, as they release and | 
|  |