]> git.cworth.org Git - apitrace/commitdiff
More helpful messages on exceptions inside apitrace code.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 23 Dec 2011 03:22:53 +0000 (03:22 +0000)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 23 Dec 2011 03:22:53 +0000 (03:22 +0000)
common/trace_writer_local.cpp

index 77c8bd67de3785db908e02a7dbf574f2385f0167..e72d5c085a1454f279ff03fcb32e0428171ec2fd 100644 (file)
@@ -173,14 +173,18 @@ void LocalWriter::flush(void) {
      * while writing the file) to prevent dead-lock.
      */
 
-    if (!acquired) {
-        os::acquireMutex();
+    os::acquireMutex();
+    if (acquired) {
+        os::log("apitrace: ignoring exception while tracing\n");
+    } else {
+        ++acquired;
         if (m_file->isOpened()) {
             os::log("apitrace: flushing trace due to an exception\n");
             m_file->flush();
         }
-        os::releaseMutex();
+        --acquired;
     }
+    os::releaseMutex();
 }