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

Side by Side Diff: nptl/sysdeps/pthread/createthread.c

Issue 7785030: Replace #define syscalls cancel machinery. (Closed) Base URL: http://git.chromium.org/native_client/nacl-glibc.git@master
Patch Set: Cosmetic change Created 9 years, 3 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 unified diff | Download patch
« no previous file with comments | « nptl/sysdeps/i386/tls.h ('k') | nptl/sysdeps/x86_64/tls.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc. 1 /* Copyright (C) 2002-2007, 2008 Free Software Foundation, Inc.
2 This file is part of the GNU C Library. 2 This file is part of the GNU C Library.
3 Contributed by Ulrich Drepper <drepper@redhat.com>, 2002. 3 Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
4 4
5 The GNU C Library is free software; you can redistribute it and/or 5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public 6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either 7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version. 8 version 2.1 of the License, or (at your option) any later version.
9 9
10 The GNU C Library is distributed in the hope that it will be useful, 10 The GNU C Library is distributed in the hope that it will be useful,
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 we momentarily store a false value; this doesn't matter because there 71 we momentarily store a false value; this doesn't matter because there
72 is no kosher thing a signal handler interrupting us right here can do 72 is no kosher thing a signal handler interrupting us right here can do
73 that cares whether the thread count is correct. */ 73 that cares whether the thread count is correct. */
74 atomic_increment (&__nptl_nthreads); 74 atomic_increment (&__nptl_nthreads);
75 75
76 #ifndef __native_client__ 76 #ifndef __native_client__
77 #error "This code was changed to work only in Native Client" 77 #error "This code was changed to work only in Native Client"
78 #endif 78 #endif
79 79
80 /* Native Client does not have a notion of a thread ID, so we make 80 /* Native Client does not have a notion of a thread ID, so we make
81 one up. This must be positive to mark the thread as not 81 one up. This must be small enough to leave space for number identifying
82 exited. */ 82 the clock. Use CLOCK_IDFIELD_SIZE to guarantee that. */
83 pd->tid = ((unsigned int) pd) >> 2; 83 pd->tid = ((unsigned int) pd) >> CLOCK_IDFIELD_SIZE;
84 84
85 /* Native Client syscall thread_create does not push return address onto stack 85 /* Native Client syscall thread_create does not push return address onto stack
86 as opposed to the kernel. We emulate this behavior on x86-64 to meet the 86 as opposed to the kernel. We emulate this behavior on x86-64 to meet the
87 ABI requirement ((%rsp + 8) mod 16 == 0). On x86-32 the attribute 87 ABI requirement ((%rsp + 8) mod 16 == 0). On x86-32 the attribute
88 'force_align_arg_pointer' does the same for start_thread (). */ 88 'force_align_arg_pointer' does the same for start_thread (). */
89 #ifdef __x86_64__ 89 #ifdef __x86_64__
90 STACK_VARIABLES_ARGS -= 8; 90 STACK_VARIABLES_ARGS -= 8;
91 #endif 91 #endif
92 92
93 if (__nacl_irt_thread_create (fct, STACK_VARIABLES_ARGS, pd) != 0) 93 if (__nacl_irt_thread_create (fct, STACK_VARIABLES_ARGS, pd) != 0)
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 /* Actually create the thread. */ 266 /* Actually create the thread. */
267 int res = do_clone (pd, attr, clone_flags, start_thread, 267 int res = do_clone (pd, attr, clone_flags, start_thread,
268 STACK_VARIABLES_ARGS, stopped); 268 STACK_VARIABLES_ARGS, stopped);
269 269
270 if (res == 0 && stopped) 270 if (res == 0 && stopped)
271 /* And finally restart the new thread. */ 271 /* And finally restart the new thread. */
272 lll_unlock (pd->lock, LLL_PRIVATE); 272 lll_unlock (pd->lock, LLL_PRIVATE);
273 273
274 return res; 274 return res;
275 } 275 }
OLDNEW
« no previous file with comments | « nptl/sysdeps/i386/tls.h ('k') | nptl/sysdeps/x86_64/tls.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698