Protect internal services like dbus-daemon and udevd

In f3669c7 the difference between static and dynamic services was
removed.  This led to a regression in handling internally created
services for, e.g., dbus-daemon and udevd, mentioned in issue #90.

This patch introduces a "protected" flag for svc_t to prevent the
mark-and-sweep handling of regularly loaded services.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson committed 2017-12-23 21:57:31 +01:00
1 parent 523a270f22
commit d6ea1c0cab
3 files changed
+9 -1

No files matched your search

+5 -1
View File
@@ -356,8 +356,12 @@ void svc_mark_dynamic(void)
{
svc_t *svc, *iter = NULL;
for (svc = svc_iterator(&iter, 1); svc; svc = svc_iterator(&iter, 0))
for (svc = svc_iterator(&iter, 1); svc; svc = svc_iterator(&iter, 0)) {
if (svc->protected)
continue;
*((int *)&svc->dirty) = -1;
}
}
void svc_mark_dirty(svc_t *svc)