now works with -fno-exceptions and -fno-rtti
llvm-svn: 110828
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 54b409fdb9489b305bf95f4d4f52b49c7926c429
diff --git a/src/mutex.cpp b/src/mutex.cpp
index 1f8160d..fa1e7a0 100644
--- a/src/mutex.cpp
+++ b/src/mutex.cpp
@@ -220,8 +220,10 @@
pthread_cond_wait(&cv, &mut);
if (flag == 0)
{
+#ifndef _LIBCPP_NO_EXCEPTIONS
try
{
+#endif
flag = 1;
pthread_mutex_unlock(&mut);
func(arg);
@@ -229,6 +231,7 @@
flag = ~0ul;
pthread_mutex_unlock(&mut);
pthread_cond_broadcast(&cv);
+#ifndef _LIBCPP_NO_EXCEPTIONS
}
catch (...)
{
@@ -238,6 +241,7 @@
pthread_cond_broadcast(&cv);
throw;
}
+#endif
}
else
pthread_mutex_unlock(&mut);