[cfe-commits] [libcxxabi] r148965 - /libcxxabi/trunk/src/cxa_guard.cpp

Howard Hinnant hhinnant at apple.com
Wed Jan 25 11:02:40 PST 2012

Author: hhinnant
Date: Wed Jan 25 13:02:40 2012
New Revision: 148965

URL: http://llvm.org/viewvc/llvm-project?rev=148965&view=rev
cxa_guard.cpp didn't quite make it on the last commit:  Restricted headers to cxa_guard.cpp and abort_messsage.h, and added a comment regarding reentrancy brought up by John McCall.  Thanks John.


Modified: libcxxabi/trunk/src/cxa_guard.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/src/cxa_guard.cpp?rev=148965&r1=148964&r2=148965&view=diff
--- libcxxabi/trunk/src/cxa_guard.cpp (original)
+++ libcxxabi/trunk/src/cxa_guard.cpp Wed Jan 25 13:02:40 2012
@@ -7,13 +7,20 @@
-#include "cxxabi.h"
 #include "abort_message.h"
 #include <pthread.h>
 #include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
+    This implementation must be careful to not call code external to this file
+    which will turn around and try to call __cxa_guard_acquire reentrantly.
+    For this reason, the headers of this file are as restricted as possible.
+    Previous implementations of this code for __APPLE__ have used
+    pthread_mutex_lock and the abort_message utility without problem.  This
+    implementation also uses pthread_cond_wait which has tested to not be a
+    problem.
 namespace __cxxabiv1

More information about the cfe-commits mailing list