]> rtime.felk.cvut.cz Git - ert_linux.git/blobdiff - ert_linux/ert_linux_main.tlc
Ensure that mlockall() applies even to already mapped pages.
[ert_linux.git] / ert_linux / ert_linux_main.tlc
index 516c8f18f03911716f5679a2b5380a82b9bddf9d..85830b63589244ecde3d3c8b9b83f2e6c29119d2 100644 (file)
   #include <semaphore.h>                 /* Semaphores library header file */
   #include <time.h>
   #include <stdlib.h>
+  #include <stdbool.h>
   #include <unistd.h>
+  #include <sys/mman.h>                  /* For mlockall() */
   #include "%<modelName>.h"              /* Model's header file */
   #include "rtwtypes.h"                  /* MathWorks types */
   %if extMode == 1
     #include "ext_work.h"                  /* External mode header file */
   %endif
 
+  #ifndef TRUE
+  #define TRUE true
+  #define FALSE false
+  #endif
+
   /*==================*
    * Required defines *
    *==================*/
        %<modelName>_step%<i>();
        sem_wait(&sub_rate[%<i>].sem);    /* sem_val = 0 */
       }
+      return NULL;
     }
   %endforeach
 %endfunction
 
     %if extMode == 1
       /* External mode */
-      rtERTExtModeParseArgs(argc, argv);
+      /* rtERTExtModeParseArgs(argc, argv); */
+      rtExtModeParseArgs(argc, argv, NULL);
       CHECKE(sem_init(&ext_mode_ready, 0, 0));
     %else
       (void)(argc);
       (void *)(argv);
     %endif
 
+    CHECKE(mlockall(MCL_CURRENT | MCL_FUTURE));
+
     /* Initialize model */
     %<modelName>_initialize();
     simulationFinished = 0;