From b2486a8922bf4977bd82c8190258e39de28c053b Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 6 Apr 2011 20:27:07 -0400 Subject: move rsyscall out of pthread_create module this is something of a tradeoff, as now set*id() functions, rather than pthread_create, are what pull in the code overhead for dealing with linux's refusal to implement proper POSIX thread-vs-process semantics. my motivations are: 1. it's cleaner this way, especially cleaner to optimize out the rsyscall locking overhead from pthread_create when it's not needed. 2. it's expected that only a tiny number of core system programs will ever use set*id() functions, whereas many programs may want to use threads, and making thread overhead tiny is an incentive for "light" programs to try threads. --- src/internal/libc.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/internal/libc.h') diff --git a/src/internal/libc.h b/src/internal/libc.h index be88dc04..c0039e77 100644 --- a/src/internal/libc.h +++ b/src/internal/libc.h @@ -10,7 +10,6 @@ struct __libc { void (*lock)(volatile int *); void (*lockfile)(FILE *); void (*fork_handler)(int); - int (*rsyscall)(int, long, long, long, long, long, long); int (*atexit)(void (*)(void)); void (*fini)(void); void (*ldso_fini)(void); @@ -48,6 +47,8 @@ void __lockfile(FILE *); #define CANCELPT_INHIBIT CANCELPT(2) #define CANCELPT_RESUME CANCELPT(-2) +int __rsyscall(int, long, long, long, long, long, long); + extern char **__environ; #define environ __environ -- cgit 1.4.1