17
17
#define FORCE_DBUG_OFF
18
18
#include "mysys_priv.h"
19
19
#include <my_global.h>
20
-
21
- #if !defined(DONT_USE_THR_ALARM )
22
20
#include <errno.h>
23
21
#include <my_pthread.h>
24
22
#include <signal.h>
@@ -53,12 +51,7 @@ pthread_t alarm_thread;
53
51
54
52
#define MY_THR_ALARM_QUEUE_EXTENT 10
55
53
56
- #ifdef USE_ALARM_THREAD
57
- static void * alarm_handler (void * arg );
58
- #define reschedule_alarms () mysql_cond_signal(&COND_alarm)
59
- #else
60
54
#define reschedule_alarms () pthread_kill(alarm_thread,THR_SERVER_ALARM)
61
- #endif
62
55
63
56
static sig_handler thread_alarm (int sig __attribute__((unused )));
64
57
@@ -84,27 +77,14 @@ void init_thr_alarm(uint max_alarms)
84
77
thr_client_alarm = SIGALRM ;
85
78
else
86
79
thr_client_alarm = SIGUSR1 ;
87
- #ifndef USE_ALARM_THREAD
88
80
if (thd_lib_detected != THD_LIB_LT )
89
- #endif
90
81
{
91
82
my_sigset (thr_client_alarm , thread_alarm );
92
83
}
93
84
sigemptyset (& s );
94
85
sigaddset (& s , THR_SERVER_ALARM );
95
86
alarm_thread = pthread_self ();
96
- #if defined(USE_ALARM_THREAD )
97
- {
98
- pthread_attr_t thr_attr ;
99
- pthread_attr_init (& thr_attr );
100
- pthread_attr_setscope (& thr_attr ,PTHREAD_SCOPE_PROCESS );
101
- pthread_attr_setdetachstate (& thr_attr ,PTHREAD_CREATE_DETACHED );
102
- pthread_attr_setstacksize (& thr_attr ,8196 );
103
- mysql_thread_create (key_thread_alarm ,
104
- & alarm_thread , & thr_attr , alarm_handler , NULL );
105
- pthread_attr_destroy (& thr_attr );
106
- }
107
- #elif defined(USE_ONE_SIGNAL_HAND )
87
+ #if defined(USE_ONE_SIGNAL_HAND )
108
88
pthread_sigmask (SIG_BLOCK , & s , NULL ); /* used with sigwait() */
109
89
if (thd_lib_detected == THD_LIB_LT )
110
90
{
@@ -313,18 +293,14 @@ sig_handler process_alarm(int sig __attribute__((unused)))
313
293
process_alarm() at the same time
314
294
*/
315
295
316
- #ifndef USE_ALARM_THREAD
317
296
pthread_sigmask (SIG_SETMASK ,& full_signal_set ,& old_mask );
318
297
mysql_mutex_lock (& LOCK_alarm );
319
- #endif
320
298
process_alarm_part2 (sig );
321
- #ifndef USE_ALARM_THREAD
322
299
#if defined(SIGNAL_HANDLER_RESET_ON_DELIVERY ) && !defined(USE_ONE_SIGNAL_HAND )
323
300
my_sigset (THR_SERVER_ALARM ,process_alarm );
324
301
#endif
325
302
mysql_mutex_unlock (& LOCK_alarm );
326
303
pthread_sigmask (SIG_SETMASK ,& old_mask ,NULL );
327
- #endif
328
304
return ;
329
305
}
330
306
@@ -358,10 +334,8 @@ static sig_handler process_alarm_part2(int sig __attribute__((unused)))
358
334
else
359
335
i ++ ; /* Signal next thread */
360
336
}
361
- #ifndef USE_ALARM_THREAD
362
337
if (alarm_queue .elements )
363
338
alarm (1 ); /* Signal soon again */
364
- #endif
365
339
}
366
340
else
367
341
{
@@ -387,7 +361,6 @@ static sig_handler process_alarm_part2(int sig __attribute__((unused)))
387
361
queue_replaced (& alarm_queue );
388
362
}
389
363
}
390
- #ifndef USE_ALARM_THREAD
391
364
if (alarm_queue .elements )
392
365
{
393
366
#ifdef __bsdi__
@@ -396,7 +369,6 @@ static sig_handler process_alarm_part2(int sig __attribute__((unused)))
396
369
alarm ((uint ) (alarm_data -> expire_time - now ));
397
370
next_alarm_expire_time = alarm_data -> expire_time ;
398
371
}
399
- #endif
400
372
}
401
373
}
402
374
else
@@ -533,66 +505,6 @@ static sig_handler thread_alarm(int sig __attribute__((unused)))
533
505
#define tv_nsec ts_nsec
534
506
#endif
535
507
536
- /* set up a alarm thread with uses 'sleep' to sleep between alarms */
537
-
538
- #ifdef USE_ALARM_THREAD
539
- static void * alarm_handler (void * arg __attribute__((unused )))
540
- {
541
- int error ;
542
- struct timespec abstime ;
543
- #ifdef MAIN
544
- puts ("Starting alarm thread" );
545
- #endif
546
- my_thread_init ();
547
- alarm_thread_running = 1 ;
548
- mysql_mutex_lock (& LOCK_alarm );
549
- for (;;)
550
- {
551
- if (alarm_queue .elements )
552
- {
553
- ulong sleep_time ,now = my_time (0 );
554
- if (alarm_aborted )
555
- sleep_time = now + 1 ;
556
- else
557
- sleep_time = ((ALARM * ) queue_top (& alarm_queue ))-> expire_time ;
558
- if (sleep_time > now )
559
- {
560
- abstime .tv_sec = sleep_time ;
561
- abstime .tv_nsec = 0 ;
562
- next_alarm_expire_time = sleep_time ;
563
- if ((error = mysql_cond_timedwait (& COND_alarm , & LOCK_alarm , & abstime )) &&
564
- error != ETIME && error != ETIMEDOUT )
565
- {
566
- #ifdef MAIN
567
- printf ("Got error: %d from ptread_cond_timedwait (errno: %d)\n" ,
568
- error ,errno );
569
- #endif
570
- }
571
- }
572
- }
573
- else if (alarm_aborted == -1 )
574
- break ;
575
- else
576
- {
577
- next_alarm_expire_time = ~ (time_t ) 0 ;
578
- if ((error = mysql_cond_wait (& COND_alarm , & LOCK_alarm )))
579
- {
580
- #ifdef MAIN
581
- printf ("Got error: %d from ptread_cond_wait (errno: %d)\n" ,
582
- error ,errno );
583
- #endif
584
- }
585
- }
586
- process_alarm (0 );
587
- }
588
- memset (& alarm_thread , 0 , sizeof (alarm_thread )); /* For easy debugging */
589
- alarm_thread_running = 0 ;
590
- mysql_cond_signal (& COND_alarm );
591
- mysql_mutex_unlock (& LOCK_alarm );
592
- pthread_exit (0 );
593
- return 0 ; /* Impossible */
594
- }
595
- #endif /* USE_ALARM_THREAD */
596
508
597
509
/*****************************************************************************
598
510
thr_alarm for win95
@@ -680,14 +592,11 @@ void resize_thr_alarm(uint max_alarms)
680
592
681
593
#endif /* __WIN__ */
682
594
683
- #endif
684
-
685
595
/****************************************************************************
686
596
Handling of test case (when compiled with -DMAIN)
687
597
***************************************************************************/
688
598
689
599
#ifdef MAIN
690
- #if !defined(DONT_USE_THR_ALARM )
691
600
692
601
static mysql_cond_t COND_thread_count ;
693
602
static mysql_mutex_t LOCK_thread_count ;
@@ -954,13 +863,4 @@ int main(int argc __attribute__((unused)),char **argv __attribute__((unused)))
954
863
return 0 ;
955
864
}
956
865
957
- #else /* !defined(DONT_USE_ALARM_THREAD) */
958
-
959
- int main (int argc __attribute__((unused )),char * * argv __attribute__((unused )))
960
- {
961
- printf ("thr_alarm disabled with DONT_USE_THR_ALARM\n" );
962
- exit (1 );
963
- }
964
-
965
- #endif /* !defined(DONT_USE_ALARM_THREAD) */
966
866
#endif /* MAIN */
0 commit comments