--- 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);
+}
+