| 154 | } |
| 155 | |
| 156 | std::unique_ptr<process_context> process_context::fork() |
| 157 | { |
| 158 | std::unique_ptr<process_context> new_process(new process_context(current_process->child_stack_size())); |
| 159 | new_process->output_precision = current_process->output_precision; |
| 160 | new_process->import_path = current_process->import_path; |
| 161 | process_context *curr = current_process; |
| 162 | new_process->on_process_exit.add_listener([curr](void *data) -> bool |
| 163 | { return curr->on_process_exit.touch(data); }); |
| 164 | new_process->on_process_sigint.add_listener([curr](void *data) -> bool |
| 165 | { return curr->on_process_sigint.touch(data); }); |
| 166 | new_process->std_eh_callback = current_process->std_eh_callback; |
| 167 | new_process->cs_eh_callback = current_process->cs_eh_callback; |
| 168 | return std::move(new_process); |
| 169 | } |
| 170 | |
| 171 | process_context this_process; |
| 172 | process_context *current_process = &this_process; |
no test coverage detected