BUILD/MEDIUM: threads: rename thread_info struct to ha_thread_info

On Darwin, the thread_info name exists as a standard function thus
we need to rename our array to ha_thread_info to fix this conflict.
This commit is contained in:
David Carlier 2019-09-13 05:03:12 +01:00 committed by Willy Tarreau
parent a3956aa3b6
commit a92c5cec2d
5 changed files with 22 additions and 22 deletions

View File

@ -38,7 +38,7 @@
* only one thread is enabled, it equals 1. * only one thread is enabled, it equals 1.
*/ */
/* thread info flags, for thread_info[].flags */ /* thread info flags, for ha_thread_info[].flags */
#define TI_FL_STUCK 0x00000001 #define TI_FL_STUCK 0x00000001
@ -67,7 +67,7 @@ extern struct thread_info {
/* pad to cache line (64B) */ /* pad to cache line (64B) */
char __pad[0]; /* unused except to check remaining room */ char __pad[0]; /* unused except to check remaining room */
char __end[0] __attribute__((aligned(64))); char __end[0] __attribute__((aligned(64)));
} thread_info[MAX_THREADS]; } ha_thread_info[MAX_THREADS];
extern THREAD_LOCAL struct thread_info *ti; /* thread_info for the current thread */ extern THREAD_LOCAL struct thread_info *ti; /* thread_info for the current thread */
@ -167,7 +167,7 @@ extern THREAD_LOCAL struct thread_info *ti; /* thread_info for the current threa
static inline void ha_set_tid(unsigned int tid) static inline void ha_set_tid(unsigned int tid)
{ {
ti = &thread_info[tid]; ti = &ha_thread_info[tid];
} }
static inline void ha_thread_relax(void) static inline void ha_thread_relax(void)
@ -437,7 +437,7 @@ extern struct thread_info {
/* pad to cache line (64B) */ /* pad to cache line (64B) */
char __pad[0]; /* unused except to check remaining room */ char __pad[0]; /* unused except to check remaining room */
char __end[0] __attribute__((aligned(64))); char __end[0] __attribute__((aligned(64)));
} thread_info[MAX_THREADS]; } ha_thread_info[MAX_THREADS];
extern THREAD_LOCAL unsigned int tid; /* The thread id */ extern THREAD_LOCAL unsigned int tid; /* The thread id */
extern THREAD_LOCAL unsigned long tid_bit; /* The bit corresponding to the thread id */ extern THREAD_LOCAL unsigned long tid_bit; /* The bit corresponding to the thread id */
@ -480,7 +480,7 @@ static inline void ha_set_tid(unsigned int data)
{ {
tid = data; tid = data;
tid_bit = (1UL << tid); tid_bit = (1UL << tid);
ti = &thread_info[tid]; ti = &ha_thread_info[tid];
} }
static inline void ha_thread_relax(void) static inline void ha_thread_relax(void)

View File

@ -45,9 +45,9 @@ volatile unsigned long threads_to_dump = 0;
void ha_thread_dump(struct buffer *buf, int thr, int calling_tid) void ha_thread_dump(struct buffer *buf, int thr, int calling_tid)
{ {
unsigned long thr_bit = 1UL << thr; unsigned long thr_bit = 1UL << thr;
unsigned long long p = thread_info[thr].prev_cpu_time; unsigned long long p = ha_thread_info[thr].prev_cpu_time;
unsigned long long n = now_cpu_time_thread(&thread_info[thr]); unsigned long long n = now_cpu_time_thread(&ha_thread_info[thr]);
int stuck = !!(thread_info[thr].flags & TI_FL_STUCK); int stuck = !!(ha_thread_info[thr].flags & TI_FL_STUCK);
chunk_appendf(buf, chunk_appendf(buf,
"%c%cThread %-2u: act=%d glob=%d wq=%d rq=%d tl=%d tlsz=%d rqsz=%d\n" "%c%cThread %-2u: act=%d glob=%d wq=%d rq=%d tl=%d tlsz=%d rqsz=%d\n"

View File

@ -3362,9 +3362,9 @@ int main(int argc, char **argv)
pthread_sigmask(SIG_SETMASK, &blocked_sig, &old_sig); pthread_sigmask(SIG_SETMASK, &blocked_sig, &old_sig);
/* Create nbthread-1 thread. The first thread is the current process */ /* Create nbthread-1 thread. The first thread is the current process */
thread_info[0].pthread = pthread_self(); ha_thread_info[0].pthread = pthread_self();
for (i = 1; i < global.nbthread; i++) for (i = 1; i < global.nbthread; i++)
pthread_create(&thread_info[i].pthread, NULL, &run_thread_poll_loop, (void *)(long)i); pthread_create(&ha_thread_info[i].pthread, NULL, &run_thread_poll_loop, (void *)(long)i);
#ifdef USE_CPU_AFFINITY #ifdef USE_CPU_AFFINITY
/* Now the CPU affinity for all threads */ /* Now the CPU affinity for all threads */
@ -3391,7 +3391,7 @@ int main(int argc, char **argv)
CPU_SET(j - 1, &cpuset); CPU_SET(j - 1, &cpuset);
cpu_map &= ~(1UL << (j - 1)); cpu_map &= ~(1UL << (j - 1));
} }
pthread_setaffinity_np(thread_info[i].pthread, pthread_setaffinity_np(ha_thread_info[i].pthread,
sizeof(cpuset), &cpuset); sizeof(cpuset), &cpuset);
} }
} }
@ -3405,7 +3405,7 @@ int main(int argc, char **argv)
/* Wait the end of other threads */ /* Wait the end of other threads */
for (i = 1; i < global.nbthread; i++) for (i = 1; i < global.nbthread; i++)
pthread_join(thread_info[i].pthread, NULL); pthread_join(ha_thread_info[i].pthread, NULL);
#if defined(DEBUG_THREAD) || defined(DEBUG_FULL) #if defined(DEBUG_THREAD) || defined(DEBUG_FULL)
show_lock_stats(); show_lock_stats();

View File

@ -29,8 +29,8 @@
#include <types/global.h> #include <types/global.h>
#include <proto/fd.h> #include <proto/fd.h>
struct thread_info thread_info[MAX_THREADS] = { }; struct thread_info ha_thread_info[MAX_THREADS] = { };
THREAD_LOCAL struct thread_info *ti = &thread_info[0]; THREAD_LOCAL struct thread_info *ti = &ha_thread_info[0];
#ifdef USE_THREAD #ifdef USE_THREAD
@ -134,7 +134,7 @@ void thread_sync_release()
/* send signal <sig> to thread <thr> */ /* send signal <sig> to thread <thr> */
void ha_tkill(unsigned int thr, int sig) void ha_tkill(unsigned int thr, int sig)
{ {
pthread_kill(thread_info[thr].pthread, sig); pthread_kill(ha_thread_info[thr].pthread, sig);
} }
/* send signal <sig> to all threads. The calling thread is signaled last in /* send signal <sig> to all threads. The calling thread is signaled last in
@ -149,7 +149,7 @@ void ha_tkillall(int sig)
continue; continue;
if (thr == tid) if (thr == tid)
continue; continue;
pthread_kill(thread_info[thr].pthread, sig); pthread_kill(ha_thread_info[thr].pthread, sig);
} }
raise(sig); raise(sig);
} }

View File

@ -43,7 +43,7 @@ int wdt_ping(int thr)
its.it_value.tv_sec = 1; its.it_value.tv_nsec = 0; its.it_value.tv_sec = 1; its.it_value.tv_nsec = 0;
its.it_interval.tv_sec = 0; its.it_interval.tv_nsec = 0; its.it_interval.tv_sec = 0; its.it_interval.tv_nsec = 0;
return timer_settime(thread_info[thr].wd_timer, 0, &its, NULL) == 0; return timer_settime(ha_thread_info[thr].wd_timer, 0, &its, NULL) == 0;
} }
/* This is the WDTSIG signal handler */ /* This is the WDTSIG signal handler */
@ -68,8 +68,8 @@ void wdt_handler(int sig, siginfo_t *si, void *arg)
if (thr < 0 || thr >= global.nbthread) if (thr < 0 || thr >= global.nbthread)
break; break;
p = thread_info[thr].prev_cpu_time; p = ha_thread_info[thr].prev_cpu_time;
n = now_cpu_time_thread(&thread_info[thr]); n = now_cpu_time_thread(&ha_thread_info[thr]);
/* not yet reached the deadline of 1 sec */ /* not yet reached the deadline of 1 sec */
if (n - p < 1000000000UL) if (n - p < 1000000000UL)
@ -94,8 +94,8 @@ void wdt_handler(int sig, siginfo_t *si, void *arg)
* If it's already set, then it's our second call with no * If it's already set, then it's our second call with no
* progress and the thread is dead. * progress and the thread is dead.
*/ */
if (!(thread_info[thr].flags & TI_FL_STUCK)) { if (!(ha_thread_info[thr].flags & TI_FL_STUCK)) {
_HA_ATOMIC_OR(&thread_info[thr].flags, TI_FL_STUCK); _HA_ATOMIC_OR(&ha_thread_info[thr].flags, TI_FL_STUCK);
goto update_and_leave; goto update_and_leave;
} }
@ -118,7 +118,7 @@ void wdt_handler(int sig, siginfo_t *si, void *arg)
* the current one not involved in this. * the current one not involved in this.
*/ */
if (thr != tid) if (thr != tid)
pthread_kill(thread_info[thr].pthread, sig); pthread_kill(ha_thread_info[thr].pthread, sig);
else else
ha_panic(); ha_panic();
return; return;