about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/internal/pthread_impl.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h
index 0a65fa37..fc2def63 100644
--- a/src/internal/pthread_impl.h
+++ b/src/internal/pthread_impl.h
@@ -19,16 +19,21 @@ struct pthread {
 	void **dtv, *unused1, *unused2;
 	uintptr_t sysinfo;
 	uintptr_t canary, canary2;
-	pid_t tid, pid;
 
 	/* Part 2 -- implementation details, non-ABI. */
-	int tsd_used, errno_val;
-	volatile int cancel, canceldisable, cancelasync;
+	int tid;
+	int errno_val;
 	volatile int detach_state;
+	volatile int cancel;
+	volatile unsigned char canceldisable, cancelasync;
+	unsigned char tsd_used:1;
+	unsigned char unblock_cancel:1;
+	unsigned char dlerror_flag:1;
 	unsigned char *map_base;
 	size_t map_size;
 	void *stack;
 	size_t stack_size;
+	size_t guard_size;
 	void *start_arg;
 	void *(*start)(void *);
 	void *result;
@@ -39,16 +44,13 @@ struct pthread {
 		long off;
 		volatile void *volatile pending;
 	} robust_list;
-	int unblock_cancel;
 	volatile int timer_id;
 	locale_t locale;
 	volatile int killlock[1];
-	volatile int startlock[2];
+	volatile int startlock[1];
 	unsigned long sigmask[_NSIG/8/sizeof(long)];
 	char *dlerror_buf;
-	int dlerror_flag;
 	void *stdio_locks;
-	size_t guard_size;
 
 	/* Part 3 -- the positions of these fields relative to
 	 * the end of the structure is external and internal ABI. */