Implement kill() and exit() in the process manager.
authorRazvan Damachi <razvan.damachi@gmail.com>
Wed, 21 Jun 2017 17:11:41 +0000 (19:11 +0200)
committerSimon Gerber <simon.gerber@inf.ethz.ch>
Thu, 31 Aug 2017 14:35:08 +0000 (16:35 +0200)
commit0478b6d2e561db46403bb31e1eb14c445ddaebf3
tree425fe6be43ba0c1e820ca45364b8748b27e82671
parente34340503614851140241cb38e1a03ec5b5d1cde
Implement kill() and exit() in the process manager.

On the server side, both calls are handled similarly: the process manager sends
a kill request to all spawnds running a dispatcher for the victim domain. On the
client side, they are different calls.

The general-purpose domain exit protocol now attempts to use the proc mgmt API
exit call (in lib/barrelfish/init.c). If this fails, the protocol will fall
back to exiting via a direct spawn_exit() call, like before. The use-case where
exiting via the process manager is expected to fail is when the domain was not
spawned through the process manager in the first place, such as is the case
with the special domains spawned by the monitor on the bootstrap core, as well
as the monitors themselves.

Signed-off-by: Razvan Damachi <razvan.damachi@gmail.com>
errors/errno.fugu
if/proc_mgmt.if
include/barrelfish/proc_mgmt_client.h
lib/barrelfish/init.c
lib/barrelfish/proc_mgmt_client.c
usr/proc_mgmt/domain.c
usr/proc_mgmt/domain.h
usr/proc_mgmt/pending_clients.h
usr/proc_mgmt/service.c
usr/spawnd/ps.c