targets/Win32/plc_Win32_main.c
changeset 1465 9011e2ceea85
parent 1457 ff7cfce737ca
child 1466 805826ba48c5
--- a/targets/Win32/plc_Win32_main.c	Thu Jun 18 15:22:43 2015 +0200
+++ b/targets/Win32/plc_Win32_main.c	Fri Jun 19 21:36:35 2015 +0200
@@ -76,8 +76,6 @@
     BOOL tmp;
     setlocale(LC_NUMERIC, "C");
 
-    InitializeCriticalSection(&Atomic64CS);
-
     debug_sem = CreateSemaphore(
                             NULL,           // default security attributes
                             1,  			// initial count
@@ -170,7 +168,6 @@
     CloseHandle(PLC_timer);
     WaitForSingleObject(PLC_thread, INFINITE);
     __cleanup();
-    DeleteCriticalSection(&Atomic64CS);
     CloseHandle(debug_wait_sem);
     CloseHandle(debug_sem);
     CloseHandle(python_wait_sem);
@@ -279,3 +276,17 @@
 {
 }
 
+static void __attribute__((constructor))
+beremiz_dll_init(void)
+{
+    ResetLogCount();
+    InitializeCriticalSection(&Atomic64CS);
+
+}
+
+static void __attribute__((destructor))
+beremiz_dll_destroy(void)
+{
+    DeleteCriticalSection(&Atomic64CS);
+}
+