1.1 --- a/libexec/lib/src/process_monitor.cc Sun Mar 26 01:36:53 2023 +0100
1.2 +++ b/libexec/lib/src/process_monitor.cc Sun Mar 26 01:52:16 2023 +0100
1.3 @@ -144,14 +144,24 @@
1.4
1.5 long ProcessMonitor::subscribe(l4_cap_idx_t notifier, notify_flags_t flags)
1.6 {
1.7 - return NotificationSupport::subscribe(notifier, flags);
1.8 + unsubscribe();
1.9 +
1.10 + _notifier = notifier;
1.11 + return NotificationSupport::subscribe(_notifier, flags);
1.12 }
1.13
1.14 /* Unsubscribe from notifications. */
1.15
1.16 -long ProcessMonitor::unsubscribe(l4_cap_idx_t notifier)
1.17 +long ProcessMonitor::unsubscribe()
1.18 {
1.19 - return NotificationSupport::unsubscribe(notifier);
1.20 + if (l4_is_valid_cap(_notifier))
1.21 + {
1.22 + long err = NotificationSupport::unsubscribe(_notifier);
1.23 + _notifier = L4_INVALID_CAP;
1.24 + return err;
1.25 + }
1.26 + else
1.27 + return L4_EOK;
1.28 }
1.29
1.30 /* vim: tabstop=2 expandtab shiftwidth=2