diff -r 9ee3a2dea7e8 -r 9011e2ceea85 targets/Win32/plc_Win32_main.c --- 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); +} +