]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
library: Change init/deinit order to allow utils to depend on threading
authorMartin Willi <martin@revosec.ch>
Mon, 21 Oct 2013 11:00:29 +0000 (13:00 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 4 Jun 2014 13:53:01 +0000 (15:53 +0200)
src/libstrongswan/library.c
src/libstrongswan/tests/test_runner.c

index c5850e15593c80a8770a707c2182ebd7ddfc46dd..93ff8400faf938d4160fe31facd11f111744c5b2 100644 (file)
@@ -141,12 +141,13 @@ void library_deinit()
        {
                lib->leak_detective->report(lib->leak_detective, detailed);
                lib->leak_detective->destroy(lib->leak_detective);
+               lib->leak_detective = NULL;
        }
 
-       arrays_deinit();
-       threads_deinit();
        backtrace_deinit();
+       arrays_deinit();
        utils_deinit();
+       threads_deinit();
 
        free((void*)this->public.ns);
        free(this);
@@ -269,10 +270,10 @@ bool library_init(char *settings, const char *namespace)
        );
        lib = &this->public;
 
-       utils_init();
-       backtrace_init();
        threads_init();
+       utils_init();
        arrays_init();
+       backtrace_init();
 
 #ifdef LEAK_DETECTIVE
        lib->leak_detective = leak_detective_create();
index 1f11050f49fd506bb0f86534c931feb51e5d2654..4684eb18df6badd50a1981f92b50d0843c571aeb 100644 (file)
@@ -18,6 +18,7 @@
 #include "test_runner.h"
 
 #include <library.h>
+#include <threading/thread.h>
 #include <plugins/plugin_feature.h>
 #include <collections/array.h>
 #include <utils/test.h>
@@ -372,6 +373,7 @@ static void print_failures(array_t *failures)
 {
        failure_t failure;
 
+       threads_init();
        backtrace_init();
 
        while (array_remove(failures, 0, &failure))
@@ -391,6 +393,7 @@ static void print_failures(array_t *failures)
        }
 
        backtrace_deinit();
+       threads_deinit();
 }
 
 /**