summaryrefslogtreecommitdiff
path: root/src/char/char.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/char/char.cpp')
-rw-r--r--src/char/char.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/char/char.cpp b/src/char/char.cpp
index 55dca81..04e540b 100644
--- a/src/char/char.cpp
+++ b/src/char/char.cpp
@@ -7,6 +7,8 @@
#include <netdb.h>
#include <unistd.h>
+#include <sys/resource.h>
+
#include <cassert>
#include <cstdlib>
#include <cstring>
@@ -555,8 +557,13 @@ void mmo_char_sync_timer(TimerData *, tick_t)
// This can take a lot of time. Fork a child to handle the work and return at once
// If we're unable to fork just continue running the function normally
- if ((pid = fork()) > 0)
+ if ((pid = fork()) > 0) {
return;
+ }
+
+ // If we're a child, run as a lower priority process
+ if (pid == 0)
+ setpriority(PRIO_PROCESS, getpid(), 10);
mmo_char_sync();
inter_save();