X-Git-Url: http://rtime.felk.cvut.cz/gitweb/ert_linux.git/blobdiff_plain/d3033cf52711d2cd7c2581a26a99112be572eb07..55e03b6f670b4d7c321e4b5880a50f9a12dc22dc:/ert_linux/ert_linux_multitasking_main.tlc diff --git a/ert_linux/ert_linux_multitasking_main.tlc b/ert_linux/ert_linux_multitasking_main.tlc index 3308b96..a934620 100644 --- a/ert_linux/ert_linux_multitasking_main.tlc +++ b/ert_linux/ert_linux_multitasking_main.tlc @@ -27,7 +27,8 @@ %function generateDeclarations() Output /* Multirate - Multitasking case main file */ - #define _POSIX_C_SOURCE 199309L /* For clock_gettime() */ + #define _BSD_SOURCE /* For usleep() */ + #define _POSIX_C_SOURCE 200112L /* For clock_gettime() & clock_nanosleep() */ #include /* This ert_main.c example uses printf/fflush */ #include /* Thread library header file */ #include /* OS scheduler header file */ @@ -175,7 +176,11 @@ %endforeach /* Execute base rate step */ - %_step0(); + %if solverMode == "SingleTasking" + %_step(); + %else + %_step0(); + %endif %if extMode == 1 rtExtModeCheckEndTrigger(); @@ -191,8 +196,8 @@ clock_gettime(CLOCK_MONOTONIC, &now); if (now.tv_sec > next.tv_sec || (now.tv_sec == next.tv_sec && now.tv_nsec > next.tv_nsec)) { - uint64_T nsec = (now.tv_sec - next.tv_sec) * 1000000000 + now.tv_nsec - next.tv_nsec; - fprintf(stderr, "Base rate (%s) overrun by %d us\n", (int)(nsec/1000)); + uint32_T usec = (now.tv_sec - next.tv_sec) * 1000000 + (now.tv_nsec - next.tv_nsec)/1000; + fprintf(stderr, "Base rate (%s) overrun by %d us\n", usec); next = now; continue; }