]> git.cworth.org Git - apitrace/blobdiff - common/trace_writer_local.cpp
More helpful messages on exceptions inside apitrace code.
[apitrace] / 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();
 }