]> git.saurik.com Git - wxWidgets.git/blobdiff - tests/benchmarks/tls.cpp
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / tests / benchmarks / tls.cpp
index 213d3e87df6301ced8169a8bab39e8e7e2549ae5..523ae78a89fd6d8ee332c180568e49c7260846da 100644 (file)
@@ -3,13 +3,14 @@
 // Purpose:     String-related benchmarks
 // Author:      Vadim Zeitlin
 // Created:     2008-07-19
-// RCS-ID:      $Id$
 // Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #include "bench.h"
 
+#include "wx/tls.h"
+
 #if defined(__UNIX__)
     #define HAVE_PTHREAD
     #include <pthread.h>
@@ -28,7 +29,7 @@
 
 // uncomment this to also test Boost version (you will also need to link with
 // libboost_threads)
-#define HAVE_BOOST_THREAD
+//#define HAVE_BOOST_THREAD
 #ifdef HAVE_BOOST_THREAD
     #include <boost/thread/tss.hpp>
 #endif
@@ -171,3 +172,19 @@ BENCHMARK_FUNC(BoostTLS)
 }
 
 #endif // HAVE_BOOST_THREAD
+
+BENCHMARK_FUNC(wxTLS)
+{
+    static wxTLS_TYPE(int) s_globalVar;
+    #define s_global wxTLS_VALUE(s_globalVar)
+
+    for ( int n = 0; n < NUM_ITER; n++ )
+    {
+        if ( n % 2 )
+            s_global = 0;
+        else
+            s_global = n;
+    }
+
+    return !s_global;
+}