diff options
Diffstat (limited to 'libmysql/net.c')
-rw-r--r-- | libmysql/net.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libmysql/net.c b/libmysql/net.c index dac1fe0bd68..d8898facb26 100644 --- a/libmysql/net.c +++ b/libmysql/net.c @@ -71,7 +71,7 @@ extern ulong mysqld_net_retry_count; typedef my_bool thr_alarm_t; typedef my_bool ALARM; #define thr_alarm_init(A) (*A)=0 -#define thr_alarm_in_use(A) (A) +#define thr_alarm_in_use(A) (*(A)) #define thr_end_alarm(A) #define thr_alarm(A,B,C) local_thr_alarm((A),(B),(C)) static inline int local_thr_alarm(my_bool *A,int B __attribute__((unused)),ALARM *C __attribute__((unused))) @@ -330,7 +330,7 @@ net_real_write(NET *net,const char *packet,ulong len) { my_bool interrupted = vio_should_retry(net->vio); #if (!defined(__WIN__) && !defined(__EMX__)) - if ((interrupted || length==0) && !thr_alarm_in_use(alarmed)) + if ((interrupted || length==0) && !thr_alarm_in_use(&alarmed)) { if (!thr_alarm(&alarmed,(uint) net_write_timeout,&alarm_buff)) { /* Always true for client */ @@ -355,7 +355,7 @@ net_real_write(NET *net,const char *packet,ulong len) } else #endif /* (!defined(__WIN__) && !defined(__EMX__)) */ - if (thr_alarm_in_use(alarmed) && !thr_got_alarm(alarmed) && + if (thr_alarm_in_use(&alarmed) && !thr_got_alarm(&alarmed) && interrupted) { if (retry_count++ < RETRY_COUNT) @@ -389,7 +389,7 @@ net_real_write(NET *net,const char *packet,ulong len) if (net->compress) my_free((char*) packet,MYF(0)); #endif - if (thr_alarm_in_use(alarmed)) + if (thr_alarm_in_use(&alarmed)) { thr_end_alarm(&alarmed); vio_blocking(net->vio, net_blocking); @@ -412,10 +412,9 @@ net_real_write(NET *net,const char *packet,ulong len) static void my_net_skip_rest(NET *net, ulong remain, thr_alarm_t *alarmed) { - char buff[1024]; ALARM alarm_buff; uint retry_count=0; - if (!thr_alarm_in_use(alarmed)) + if (!thr_alarm_in_use(&alarmed)) { if (!thr_alarm(alarmed,net->timeout,&alarm_buff) || (!vio_is_blocking(net->vio) && vio_blocking(net->vio,TRUE) < 0)) @@ -427,7 +426,7 @@ static void my_net_skip_rest(NET *net, ulong remain, thr_alarm_t *alarmed) if ((int) (length=vio_read(net->vio,(char*) net->buff,remain)) <= 0L) { my_bool interrupted = vio_should_retry(net->vio); - if (!thr_got_alarm(alarmed) && interrupted) + if (!thr_got_alarm(&alarmed) && interrupted) { /* Probably in MIT threads */ if (retry_count++ < RETRY_COUNT) continue; @@ -482,7 +481,7 @@ my_real_read(NET *net, ulong *complen) an alarm to not 'read forever', change the socket to non blocking mode and try again */ - if ((interrupted || length == 0) && !thr_alarm_in_use(alarmed)) + if ((interrupted || length == 0) && !thr_alarm_in_use(&alarmed)) { if (!thr_alarm(&alarmed,net->timeout,&alarm_buff)) /* Don't wait too long */ { @@ -514,7 +513,7 @@ my_real_read(NET *net, ulong *complen) } } #endif /* (!defined(__WIN__) && !defined(__EMX__)) || defined(MYSQL_SERVER) */ - if (thr_alarm_in_use(alarmed) && !thr_got_alarm(alarmed) && + if (thr_alarm_in_use(&alarmed) && !thr_got_alarm(&alarmed) && interrupted) { /* Probably in MIT threads */ if (retry_count++ < RETRY_COUNT) @@ -598,7 +597,7 @@ my_real_read(NET *net, ulong *complen) } end: - if (thr_alarm_in_use(alarmed)) + if (thr_alarm_in_use(&alarmed)) { thr_end_alarm(&alarmed); vio_blocking(net->vio, net_blocking); |