commit ab57e2da719673245860796b679826e014c4727b
Author: Francois Trahay <francois.trahay@it-sudparis.eu>
Date:   Tue Jun 10 13:10:52 2014 +0200

    simplify the initialization of traces. This also fix a compilation error with llvm.

diff --git a/src/litl_write.c b/src/litl_write.c
index f41bf49..610eb99 100644
--- a/src/litl_write.c
+++ b/src/litl_write.c
@@ -75,13 +75,6 @@ static void __litl_write_add_trace_header(litl_write_trace_t* trace) {
 }
 
 /*
- * To create trace->buffer_ptr and trace->buffer
- */
-static void __litl_write_init_var(litl_write_trace_t* trace) {
-  pthread_key_create(&trace->index, NULL );
-}
-
-/*
  * Initializes the trace buffer
  */
 litl_write_trace_t* litl_write_init_trace(const litl_size_t buf_size) {
@@ -133,13 +126,7 @@ litl_write_trace_t* litl_write_init_trace(const litl_size_t buf_size) {
   // initialize the timing mechanism
   litl_time_initialize();
 
-  // a jump function is needed 'cause it is not possible to pass args to
-  //   the calling function through pthread_once
-  void __init() {
-    __litl_write_init_var(trace);
-  }
-  trace->index_once = (pthread_once_t) PTHREAD_ONCE_INIT;
-  pthread_once(&trace->index_once, __init);
+  assert(pthread_key_create(&trace->index, NULL ) == 0);
 
   // set trace->allow_buffer_flush using the environment variable.
   //   By default the buffer flushing is disabled
