terminal: trim memory after free:ing a terminal

A terminal with lots of scrollback history will have allocated a lot
of memory.

Normally, free() wont return this memory to the OS, and we don't seem
to trigger the automatic trim calls.

This means the server would accumulate quite a lot of memory over
time, as terminals come and go.

Now we explicitly trim the memory every time a terminal is destroyed.
This commit is contained in:
Daniel Eklöf 2019-11-03 12:48:18 +01:00
parent ffadb5f020
commit 2195e2cf71
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -1,5 +1,6 @@
#include "terminal.h"
#include <malloc.h>
#include <string.h>
#include <unistd.h>
#include <assert.h>
@ -796,6 +797,8 @@ term_destroy(struct terminal *term)
}
free(term);
if (!malloc_trim(0))
LOG_WARN("failed to trim memory");
return ret;
}