Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SignalDelivery needs to be shareable #107

Closed
michalfita opened this issue Nov 26, 2021 · 1 comment
Closed

SignalDelivery needs to be shareable #107

michalfita opened this issue Nov 26, 2021 · 1 comment

Comments

@michalfita
Copy link
Contributor

michalfita commented Nov 26, 2021

At the moment Process::fork() seem to create the new SignalDelivery while for proper multithreading we have to have shared access to signal handlers following clone(2) semantics supported by the Linux Kernel.

Found during work on #88 and belongs to Multithreading milestone (I can't add myself).

More details in the flags mask of clone(2), scroll down to CLONE_SIGHAND. I haven't checked yet how it's implemented in Linux Kernel.

@nuta
Copy link
Owner

nuta commented Nov 27, 2021

I think we need to do so too. Let's replace wrap signals field in Process with Arc, especially: Arc<SpinLock<SignalDelivery>>.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants