pthread_exit should call __NR_exit with status 0.
We shouldn't have been passing the bottom 32 bits of the address used
for pthread_join to the kernel.
Change-Id: I487e5002d60c27adba51173719213abbee0f183f
diff --git a/libc/bionic/bionic_clone.c b/libc/bionic/bionic_clone.c
index 8412057..b603a3a 100644
--- a/libc/bionic/bionic_clone.c
+++ b/libc/bionic/bionic_clone.c
@@ -39,21 +39,17 @@
int (*fn)(void *),
void *arg);
-extern void _exit_thread(int retCode);
+extern void _exit_thread(int status);
/* this function is called from the __bionic_clone
* assembly fragment to call the thread function
* then exit. */
-extern void
-__bionic_clone_entry( int (*fn)(void *), void *arg )
-{
- int ret = (*fn)(arg);
- _exit_thread(ret);
+extern void __bionic_clone_entry(int (*fn)(void*), void* arg) {
+ int status = (*fn)(arg);
+ _exit_thread(status);
}
-int
-clone(int (*fn)(void *), void *child_stack, int flags, void* arg, ...)
-{
+int clone(int (*fn)(void*), void* child_stack, int flags, void* arg, ...) {
va_list args;
int *parent_tidptr = NULL;
void *new_tls = NULL;