projects
/
systembsd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(8) [final] modify main() to call correct clean sequence
[systembsd.git]
/
src
/
interfaces
/
logind
/
logind.c
diff --git
a/src/interfaces/logind/logind.c
b/src/interfaces/logind/logind.c
index da9e24b58f22d3009aaf5188da9630616da6cafd..274bf16aa14da40ec78d71372351ab11be2d9c5f 100644
(file)
--- a/
src/interfaces/logind/logind.c
+++ b/
src/interfaces/logind/logind.c
@@
-152,6
+152,8
@@
void set_signal_handlers() {
int main() {
int main() {
+ set_signal_handlers();
+
logind_loop = g_main_loop_new(NULL, TRUE);
logind_freeable = g_ptr_array_new();
logind_loop = g_main_loop_new(NULL, TRUE);
logind_freeable = g_ptr_array_new();
@@
-165,11
+167,15
@@
int main() {
NULL);
g_main_loop_run(logind_loop);
NULL);
g_main_loop_run(logind_loop);
+ /* runs until single g_main_loop_quit() call is raised inside <interface>_mem_clean() */
g_main_loop_unref(logind_loop);
g_main_loop_unref(logind_loop);
+ /* guaranteed unownable */
g_bus_unown_name(bus_descriptor);
g_bus_unown_name(bus_descriptor);
- logind_mem_clean();
+ /* at this point no operations can occur with our data, it is safe to free it + its container */
+ g_ptr_array_free(logind_freeable, TRUE);
+
return 0;
}
return 0;
}