about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-04-01 22:35:20 -0400
committerRich Felker <dalias@aerifal.cx>2011-04-01 22:35:20 -0400
commit952987a0cb9b1973fdf23e05f8ddc6fe3c98fd68 (patch)
tree20888e580084e33ecfd132d598dbcfddda65630f
parent4ae5e811f8d291a0df1418e1aae583161c142952 (diff)
downloadmusl-952987a0cb9b1973fdf23e05f8ddc6fe3c98fd68.tar.gz
musl-952987a0cb9b1973fdf23e05f8ddc6fe3c98fd68.tar.xz
musl-952987a0cb9b1973fdf23e05f8ddc6fe3c98fd68.zip
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.h12
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)();
 };