diff options
| author | Rich Felker <dalias@aerifal.cx> | 2011-04-01 22:35:20 -0400 | 
|---|---|---|
| committer | Rich Felker <dalias@aerifal.cx> | 2011-04-01 22:35:20 -0400 | 
| commit | 952987a0cb9b1973fdf23e05f8ddc6fe3c98fd68 (patch) | |
| tree | 20888e580084e33ecfd132d598dbcfddda65630f | |
| parent | 4ae5e811f8d291a0df1418e1aae583161c142952 (diff) | |
| download | musl-952987a0cb9b1973fdf23e05f8ddc6fe3c98fd68.tar.gz | |
reorganize the __libc structure for threaded performance issues
we want to keep atomically updated fields (locks and thread count) and
really anything writable far away from frequently-needed function
pointers. stuff some rarely-needed function pointers in between to
pad, hopefully up to a cache line boundary.
| -rw-r--r-- | src/internal/libc.h | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/src/internal/libc.h b/src/internal/libc.h index c83fcafe..60a25eff 100644 --- a/src/internal/libc.h +++ b/src/internal/libc.h @@ -5,20 +5,20 @@  #include <stdio.h>  struct __libc { -	void (*lock)(volatile int *); +	int *(*errno_location)(void);  	void (*cancelpt)(int); +	void (*lock)(volatile int *); +	void (*lockfile)(FILE *); +	void (**tsd_keys)(void *); +	void (*sigtimer)();  	int (*atexit)(void (*)(void));  	void (*fini)(void);  	void (*ldso_fini)(void); -	int *(*errno_location)(void);  	volatile int threads_minus_1; +	int ofl_lock;  	int (*rsyscall)(int, long, long, long, long, long, long); -	void (**tsd_keys)(void *);  	void (*fork_handler)(int);  	FILE *ofl_head; -	int ofl_lock; -	void (*lockfile)(FILE *); -	void (*sigtimer)();  }; | 
