the signal block mask is inherited by the child process on fork()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18532 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -53,10 +53,11 @@ struct team_arg {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct fork_arg {
|
struct fork_arg {
|
||||||
area_id user_stack_area;
|
area_id user_stack_area;
|
||||||
addr_t user_stack_base;
|
addr_t user_stack_base;
|
||||||
size_t user_stack_size;
|
size_t user_stack_size;
|
||||||
addr_t user_local_storage;
|
addr_t user_local_storage;
|
||||||
|
sigset_t sig_block_mask;
|
||||||
|
|
||||||
struct arch_fork_arg arch_info;
|
struct arch_fork_arg arch_info;
|
||||||
};
|
};
|
||||||
@@ -1369,6 +1370,7 @@ fork_team_thread_start(void *_args)
|
|||||||
thread->user_stack_base = forkArgs->user_stack_base;
|
thread->user_stack_base = forkArgs->user_stack_base;
|
||||||
thread->user_stack_size = forkArgs->user_stack_size;
|
thread->user_stack_size = forkArgs->user_stack_size;
|
||||||
thread->user_local_storage = forkArgs->user_local_storage;
|
thread->user_local_storage = forkArgs->user_local_storage;
|
||||||
|
thread->sig_block_mask = forkArgs->sig_block_mask;
|
||||||
|
|
||||||
arch_thread_init_tls(thread);
|
arch_thread_init_tls(thread);
|
||||||
|
|
||||||
@@ -1462,6 +1464,7 @@ fork_team(void)
|
|||||||
forkArgs->user_stack_base = parentThread->user_stack_base;
|
forkArgs->user_stack_base = parentThread->user_stack_base;
|
||||||
forkArgs->user_stack_size = parentThread->user_stack_size;
|
forkArgs->user_stack_size = parentThread->user_stack_size;
|
||||||
forkArgs->user_local_storage = parentThread->user_local_storage;
|
forkArgs->user_local_storage = parentThread->user_local_storage;
|
||||||
|
forkArgs->sig_block_mask = parentThread->sig_block_mask;
|
||||||
arch_store_fork_frame(&forkArgs->arch_info);
|
arch_store_fork_frame(&forkArgs->arch_info);
|
||||||
|
|
||||||
// ToDo: copy image list
|
// ToDo: copy image list
|
||||||
|
|||||||
Reference in New Issue
Block a user