Changes between Version 74 and Version 75 of processus_thread
- Timestamp:
- Feb 12, 2018, 11:47:52 AM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TabularUnified processus_thread
v74 v75 167 167 === 6.2) detailed destruction scenario === 168 168 169 1. To handle the sys_kill() or sys_exit() system call, the client thread calls directly the process_make_kill() or process_make_exit() function, or use the relevant RPC if it is not running in the owner cluster.169 1. Both the sys_kill() or sys_exit() sys calls, use the rpc_process_make_kill_client(), to ask an RPC thread to execute the process_make_kill() function in the owner cluster (because a thread cannot kill itself). 170 170 1. The process_make_kill() function in owner cluster send a multicast and parallel RPC to all clusters containing a copy of the process. In each cluster, the process_block_threads() function set the BLOCKED_GLOBAL bit for all threads of the process. It returns only when all threads are blocked and descheduled. 171 1. When the process_make_kill() function in owner cluster has received all expected responses to the first multicast RPC, it send another multicast and parallel RPC to all clusters containing a copy of the process. In each cluster, the process_delete_threads() function releases the memory allocated to the local threads. The local process descriptor 172 is also destroyed, if it is not the reference process descriptor. 171 1. When the process_make_kill() function in owner cluster has received all expected responses to the first multicast RPC, it send another multicast and parallel RPC to all clusters containing a copy of the process. In each cluster, the process_delete_threads() function releases the memory allocated to the local threads. The local process descriptor is also destroyed, if it is not the reference process descriptor. 173 172 1. When the process_make_kill() function in owner cluster has received all expected responses to the second multi-cast RPC, it updates the owner cluster manager 174 173 to remove the process from the set of owned processes.