/*---------- !ALL(MEM): prevent us eating all RAM ----------*/
-static void rtf_limit_MEM(void) { }
+static void rtf_limit_MEM(void) {
+ int r;
+ struct rlimit64 rl;
+ r= getrlimit64(RLIMIT_MEMLOCK,&rl); if (r) diee("getrlimit RLIMIT_MEMLOCK");
+ rl.rlim_cur= 4*1024*1024;
+ r= setrlimit64(RLIMIT_MEMLOCK,&rl); if (r) diee("setrlimit RLIMIT_MEMLOCK");
+}
/*---------- MEM: lock us into memory ----------*/
-static void rtf_acquire_MEM(void) { }
+static void rtf_acquire_MEM(void) {
+ int r;
+ r= mlockall(MCL_CURRENT|MCL_FUTURE); if (r) diee("mlockall");
+}
/*---------- !ALL(CPU): use SIGXCPU to detect us spinning ----------*/