DescriptionReland "Non-SFI mode: Add Linux asynchronous signal support"
This change adds a mechanism to both receive and send signals to other
threads in the process. A single signal is implemented with no option
to mask it, but user code can use this to multiplex multiple signals and
implement something that looks more like POSIX.
Enabling signals will require allowing the tgkill system call (with the
current pid and SIGUSR1 as signum) and adding the CLONE_PARENT_SETTID
flag to clone.
* Refactored some functions common to both signal and exception
handling from src/nonsfi/linux/irt_exception_handling.c to
src/nonsfi/linux/irt_signal_handling.c. That way, other code
can still call |nonsfi_initialize_signal_handler| and it will
install both.
* Added a test for user async-signals.
* Added documentation for this feature in
documentation/nonsfi_mode_async_signals.txt
BUG=https://code.google.com/p/nativeclient/issues/detail?id=4065
TEST=./scons run_user_async_signal_test_irt bitcode=1 nonsfi_nacl=1 \
--mode=nacl,dbg-host,nacl_irt_test [platform={arm,x86_32}]
TEST=git try
Committed: https://chromium.googlesource.com/native_client/src/native_client/+/821cf4bb69650569eed52c7fa6309333c1f72654
Patch Set 1 #Patch Set 2 : Fixed races on thread termination and removed the broken FP-restoration code #
Total comments: 8
Patch Set 3 : Docs/comments updated #
Total comments: 2
Patch Set 4 : Updated documentation #
Messages
Total messages: 10 (3 generated)
|