diff -r 6b30cfee163e -r 45dc6a944ab6 runtime/plc_Win32_main.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runtime/plc_Win32_main.c Fri Sep 21 17:48:34 2007 +0200 @@ -0,0 +1,53 @@ +#include +#include +#include +#include + +void timer_notify() +{ + struct _timeb timebuffer; + + _ftime( &timebuffer ); + CURRENT_TIME.tv_sec = timebuffer.time; + CURRENT_TIME.tv_nsec = timebuffer.millitm * 1000000 + __run(); +} + +int main(int argc,char **argv) +{ + HANDLE hTimer = NULL; + LARGE_INTEGER liDueTime; + + liDueTime.QuadPart = -10000 * maxval(common_ticktime__,1);; + + // Create a waitable timer. + hTimer = CreateWaitableTimer(NULL, TRUE, "WaitableTimer"); + if (NULL == hTimer) + { + printf("CreateWaitableTimer failed (%d)\n", GetLastError()); + return 1; + } + + __init(); + + // Set a timer to wait for 10 seconds. + if (!SetWaitableTimer(hTimer, &liDueTime, common_ticktime__, NULL, NULL, 0)) + { + printf("SetWaitableTimer failed (%d)\n", GetLastError()); + return 2; + } + + while(1){ + // Wait for the timer. + if (WaitForSingleObject(hTimer, INFINITE) != WAIT_OBJECT_0) + { + printf("WaitForSingleObject failed (%d)\n", GetLastError()); + break; + } + timer_notify(); + } + + __cleanup(); + + return 0; +}