From: ian Date: Sat, 17 May 2008 16:57:06 +0000 (+0000) Subject: set memory limits X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=50d7ea2c0a57d12ed36cdee9b6dc21c3582648d7;p=trains.git set memory limits --- diff --git a/hostside/rtprio.c b/hostside/rtprio.c index ac6b49e..df3a2b7 100644 --- a/hostside/rtprio.c +++ b/hostside/rtprio.c @@ -13,11 +13,20 @@ /*---------- !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 ----------*/