Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(356)

Unified Diff: src/nonsfi/linux/linux_pthread_private.c

Issue 1212613002: Non-SFI mode: Add Linux asynchronous signal support (Closed) Base URL: https://chromium.googlesource.com/native_client/src/native_client.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/nonsfi/linux/linux_pthread_private.c
diff --git a/src/nonsfi/linux/linux_pthread_private.c b/src/nonsfi/linux/linux_pthread_private.c
index 0cf3cd03d0c10076cf393720abfdd0bdbf0ab83b..9158be7178c31b3d82e6176ba8acf29465d9f44d 100644
--- a/src/nonsfi/linux/linux_pthread_private.c
+++ b/src/nonsfi/linux/linux_pthread_private.c
@@ -24,14 +24,16 @@ static uint32_t irt_return_call(uintptr_t result) {
}
static int nacl_irt_thread_create(void (*start_func)(void), void *stack,
- void *thread_ptr) {
+ void *thread_ptr,
+ nacl_irt_tid_t *child_tid) {
/*
* We do not use CLONE_CHILD_CLEARTID as we do not want any
* non-private futex signaling. Also, NaCl ABI does not require us
* to signal the futex on stack_flag.
*/
int flags = (CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
- CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS);
+ CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS |
+ CLONE_PARENT_SETTID);
/*
* linux_clone_wrapper expects start_func's type is "int (*)(void *)".
* Although |start_func| has type "void (*)(void)", the type mismatching
@@ -40,7 +42,7 @@ static int nacl_irt_thread_create(void (*start_func)(void), void *stack,
*/
return irt_return_call(linux_clone_wrapper(
(uintptr_t) start_func, /* arg */ 0, flags, stack,
- /* ptid */ NULL, thread_ptr, /* ctid */ NULL));
+ child_tid, thread_ptr, /* ctid */ NULL));
}
static void nacl_irt_thread_exit(int32_t *stack_flag) {
@@ -80,7 +82,7 @@ static int nacl_irt_thread_nice(const int nice) {
}
void __nc_initialize_interfaces(void) {
- const struct nacl_irt_thread init = {
+ const struct nacl_irt_thread_v0_2 init = {
nacl_irt_thread_create,
nacl_irt_thread_exit,
nacl_irt_thread_nice,

Powered by Google App Engine
This is Rietveld 408576698