Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
GNOME
tracker-miners
Commits
3f6e4f38
Commit
3f6e4f38
authored
Sep 21, 2020
by
Sam Thursfield
Browse files
malloc_trim() is not available in musl libc
So detect it and use it conditionally. Closes
#135
parent
1b78faca
Pipeline
#216314
passed with stage
in 1 minute and 51 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
config-miners.h.meson.in
View file @
3f6e4f38
...
...
@@ -50,6 +50,9 @@
/* Define if we have libseccomp */
#mesondefine HAVE_LIBSECCOMP
/* Define if we have malloc_trim() */
#mesondefine HAVE_MALLOC_TRIM
/* Define if we have NetworkManager for network status detection */
#mesondefine HAVE_NETWORK_MANAGER
...
...
meson.build
View file @
3f6e4f38
...
...
@@ -327,6 +327,8 @@ endif
conf = configuration_data()
have_malloc_trim = meson.get_compiler('c').has_function('malloc_trim')
# Config that goes in config.h
conf.set('GUARANTEE_METADATA', get_option('guarantee_metadata') == true)
conf.set('USING_UNZIPPSFILES', get_option('unzip_ps_gz_files') == true)
...
...
@@ -343,6 +345,7 @@ conf.set('HAVE_LIBICU_CHARSET_DETECTION', charset_library_name == 'icu')
conf.set('HAVE_LIBEXIF', libexif.found())
conf.set('HAVE_LIBIPTCDATA', libiptcdata.found())
conf.set('HAVE_LIBSECCOMP', libseccomp.found())
conf.set('HAVE_MALLOC_TRIM', have_malloc_trim)
conf.set('HAVE_UPOWER', battery_detection_library_name == 'upower')
conf.set('HAVE_NETWORK_MANAGER', have_network_manager)
conf.set('DOMAIN_PREFIX', get_option('domain_prefix'))
...
...
@@ -470,6 +473,7 @@ summary = [
'\nFeature Support:',
' Battery/mains power detection: ' + battery_detection_library_name,
' Support for network status detection: ' + have_network_manager.to_string(),
' Releasing heap memory with malloc_trim: ' + have_malloc_trim.to_string(),
'\nData Miners / Writebacks:',
' FS (File System): ' + have_tracker_miner_fs.to_string(),
' RSS: ' + have_tracker_miner_rss.to_string(),
...
...
src/miners/fs/tracker-main.c
View file @
3f6e4f38
...
...
@@ -26,6 +26,10 @@
#include
<sys/types.h>
#include
<unistd.h>
#ifdef HAVE_MALLOC_TRIM
#include
<malloc.h>
#endif
#include
<glib.h>
#include
<glib-unix.h>
#include
<glib-object.h>
...
...
@@ -433,11 +437,28 @@ miner_start (TrackerMiner *miner,
miner
);
}
#ifdef HAVE_MALLOC_TRIM
static
void
release_heap_memory
(
void
)
{
malloc_trim
(
0
);
}
#else
static
void
release_heap_memory
(
void
)
{
g_debug
(
"release_heap_memory(): Doing nothing as malloc_trim() is not available on this platform."
);
}
#endif
static
gboolean
cleanup_cb
(
gpointer
user_data
)
{
/* Reclaim as much memory as possible */
malloc_trim
(
0
);
release_heap_memory
();
cleanup_id
=
0
;
...
...
@@ -451,7 +472,7 @@ on_low_memory (GMemoryMonitor *monitor,
gpointer
user_data
)
{
if
(
level
>
G_MEMORY_MONITOR_WARNING_LEVEL_LOW
)
malloc_trim
(
0
);
release_heap_memory
();
}
#endif
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment