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.
This commit is contained in:
parent
4ae5e811f8
commit
952987a0cb
1 changed files with 6 additions and 6 deletions
|
|
@ -5,20 +5,20 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
struct __libc {
|
struct __libc {
|
||||||
void (*lock)(volatile int *);
|
int *(*errno_location)(void);
|
||||||
void (*cancelpt)(int);
|
void (*cancelpt)(int);
|
||||||
|
void (*lock)(volatile int *);
|
||||||
|
void (*lockfile)(FILE *);
|
||||||
|
void (**tsd_keys)(void *);
|
||||||
|
void (*sigtimer)();
|
||||||
int (*atexit)(void (*)(void));
|
int (*atexit)(void (*)(void));
|
||||||
void (*fini)(void);
|
void (*fini)(void);
|
||||||
void (*ldso_fini)(void);
|
void (*ldso_fini)(void);
|
||||||
int *(*errno_location)(void);
|
|
||||||
volatile int threads_minus_1;
|
volatile int threads_minus_1;
|
||||||
|
int ofl_lock;
|
||||||
int (*rsyscall)(int, long, long, long, long, long, long);
|
int (*rsyscall)(int, long, long, long, long, long, long);
|
||||||
void (**tsd_keys)(void *);
|
|
||||||
void (*fork_handler)(int);
|
void (*fork_handler)(int);
|
||||||
FILE *ofl_head;
|
FILE *ofl_head;
|
||||||
int ofl_lock;
|
|
||||||
void (*lockfile)(FILE *);
|
|
||||||
void (*sigtimer)();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue