]> code.delx.au - pulseaudio/blobdiff - src/daemon/main.c
daemon: optionally call mlockall() on startup
[pulseaudio] / src / daemon / main.c
index 3e50baadefd85afc0b5f6e3084cfca3a0d4e0726..58f8d66031481e4286ad32b0694d0e2929039b54 100644 (file)
 
 #include <liboil/liboil.h>
 
+#ifdef HAVE_SYS_MMAN_H
+#include <sys/mman.h>
+#endif
+
 #ifdef HAVE_SYS_IOCTL_H
 #include <sys/ioctl.h>
 #endif
@@ -960,6 +964,17 @@ int main(int argc, char *argv[]) {
     pa_rtsig_configure(SIGRTMIN, SIGRTMAX-1);
 #endif
 
+    if (conf->lock_memory) {
+#ifdef HAVE_SYS_MMAN_H
+        if (mlockall(MCL_FUTURE) < 0)
+            pa_log_warn("mlockall() failed: %s", pa_cstrerror(errno));
+        else
+            pa_log_info("Sucessfully locked process into memory.");
+#else
+        pa_log_warn("Memory locking requested but not supported on platform.");
+#endif
+    }
+
     pa_memtrap_install();
 
     pa_assert_se(mainloop = pa_mainloop_new());