mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-24 12:02:36 +08:00
Fix Windows try_lock implementation
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@292011 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -102,7 +102,7 @@ _LIBCPP_THREAD_ABI_VISIBILITY
|
||||
int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m);
|
||||
|
||||
_LIBCPP_THREAD_ABI_VISIBILITY
|
||||
int __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m);
|
||||
bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m);
|
||||
|
||||
_LIBCPP_THREAD_ABI_VISIBILITY
|
||||
int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m);
|
||||
@@ -114,7 +114,7 @@ _LIBCPP_THREAD_ABI_VISIBILITY
|
||||
int __libcpp_mutex_lock(__libcpp_mutex_t *__m);
|
||||
|
||||
_LIBCPP_THREAD_ABI_VISIBILITY
|
||||
int __libcpp_mutex_trylock(__libcpp_mutex_t *__m);
|
||||
bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m);
|
||||
|
||||
_LIBCPP_THREAD_ABI_VISIBILITY
|
||||
int __libcpp_mutex_unlock(__libcpp_mutex_t *__m);
|
||||
@@ -221,9 +221,9 @@ int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m)
|
||||
return pthread_mutex_lock(__m);
|
||||
}
|
||||
|
||||
int __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m)
|
||||
bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m)
|
||||
{
|
||||
return pthread_mutex_trylock(__m);
|
||||
return pthread_mutex_trylock(__m) == 0;
|
||||
}
|
||||
|
||||
int __libcpp_recursive_mutex_unlock(__libcpp_mutex_t *__m)
|
||||
@@ -241,9 +241,9 @@ int __libcpp_mutex_lock(__libcpp_mutex_t *__m)
|
||||
return pthread_mutex_lock(__m);
|
||||
}
|
||||
|
||||
int __libcpp_mutex_trylock(__libcpp_mutex_t *__m)
|
||||
bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m)
|
||||
{
|
||||
return pthread_mutex_trylock(__m);
|
||||
return pthread_mutex_trylock(__m) == 0;
|
||||
}
|
||||
|
||||
int __libcpp_mutex_unlock(__libcpp_mutex_t *__m)
|
||||
@@ -371,10 +371,9 @@ int __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m)
|
||||
bool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m)
|
||||
{
|
||||
TryEnterCriticalSection(__m);
|
||||
return 0;
|
||||
return TryEnterCriticalSection(__m) != 0;
|
||||
}
|
||||
|
||||
int __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m)
|
||||
@@ -395,10 +394,9 @@ int __libcpp_mutex_lock(__libcpp_mutex_t *__m)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int __libcpp_mutex_trylock(__libcpp_mutex_t *__m)
|
||||
bool __libcpp_mutex_trylock(__libcpp_mutex_t *__m)
|
||||
{
|
||||
TryAcquireSRWLockExclusive(__m);
|
||||
return 0;
|
||||
return TryAcquireSRWLockExclusive(__m) != 0;
|
||||
}
|
||||
|
||||
int __libcpp_mutex_unlock(__libcpp_mutex_t *__m)
|
||||
|
||||
@@ -37,7 +37,7 @@ mutex::lock()
|
||||
bool
|
||||
mutex::try_lock() _NOEXCEPT
|
||||
{
|
||||
return __libcpp_mutex_trylock(&__m_) == 0;
|
||||
return __libcpp_mutex_trylock(&__m_);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -83,7 +83,7 @@ recursive_mutex::unlock() _NOEXCEPT
|
||||
bool
|
||||
recursive_mutex::try_lock() _NOEXCEPT
|
||||
{
|
||||
return __libcpp_recursive_mutex_trylock(&__m_) == 0;
|
||||
return __libcpp_recursive_mutex_trylock(&__m_);
|
||||
}
|
||||
|
||||
// timed_mutex
|
||||
|
||||
@@ -382,6 +382,9 @@ class Configuration(object):
|
||||
if '__cpp_structured_bindings' not in macros:
|
||||
self.config.available_features.add('libcpp-no-structured-bindings')
|
||||
|
||||
if self.is_windows:
|
||||
self.config.available_features.add('windows')
|
||||
|
||||
def configure_compile_flags(self):
|
||||
no_default_flags = self.get_lit_bool('no_default_flags', False)
|
||||
if not no_default_flags:
|
||||
|
||||
Reference in New Issue
Block a user