1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Safety fix for alarms on windows.

mysys/thr_alarm.c:
  Safety fix for alarms on windows
sql/mini_client.cc:
  Added comments
This commit is contained in:
unknown
2003-11-17 12:59:07 +02:00
parent 409b8f35d4
commit b57a1dd227
2 changed files with 13 additions and 7 deletions

View File

@@ -638,7 +638,8 @@ bool thr_got_alarm(thr_alarm_t *alrm_ptr)
void thr_end_alarm(thr_alarm_t *alrm_ptr) void thr_end_alarm(thr_alarm_t *alrm_ptr)
{ {
thr_alarm_t alrm= *alrm_ptr; thr_alarm_t alrm= *alrm_ptr;
if (alrm->crono) /* alrm may be zero if thr_alarm aborted with an error */
if (alrm && alrm->crono)
{ {
KillTimer(NULL, alrm->crono); KillTimer(NULL, alrm->crono);
alrm->crono = 0; alrm->crono = 0;

View File

@@ -15,13 +15,14 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/* /*
mini MySQL client to be included into the server to do server to server mini MySQL client to be included into the server to do server to server
commincation by Sasha Pachev commincation by Sasha Pachev
Note: all file-global symbols must begin with mc_ , even the static ones, just Note: all file-global symbols must begin with mc_ , even the static
in case we decide to make them external at some point ones, just in case we decide to make them external at some point
*/ */
#include <global.h>
#define DONT_USE_RAID #define DONT_USE_RAID
#if defined(__WIN__) #if defined(__WIN__)
#include <winsock.h> #include <winsock.h>
@@ -40,7 +41,6 @@ inline int local_thr_alarm(my_bool *A,int B __attribute__((unused)),ALARM *C __a
#define thr_got_alarm(A) 0 #define thr_got_alarm(A) 0
#endif #endif
#include <global.h>
#include <my_sys.h> #include <my_sys.h>
#include <mysys_err.h> #include <mysys_err.h>
#include <m_string.h> #include <m_string.h>
@@ -597,6 +597,11 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user,
sprintf(host_info=buff,ER(CR_TCP_CONNECTION),host); sprintf(host_info=buff,ER(CR_TCP_CONNECTION),host);
DBUG_PRINT("info",("Server name: '%s'. TCP sock: %d", host,port)); DBUG_PRINT("info",("Server name: '%s'. TCP sock: %d", host,port));
thr_alarm_init(&alarmed); thr_alarm_init(&alarmed);
/*
We don't have to check status for thr_alarm as it's not fatal if
we didn't manage to set an alarm. (In this case the socket call
will just block for a while).
*/
thr_alarm(&alarmed, net_read_timeout, &alarm_buff); thr_alarm(&alarmed, net_read_timeout, &alarm_buff);
sock = (my_socket) socket(AF_INET,SOCK_STREAM,0); sock = (my_socket) socket(AF_INET,SOCK_STREAM,0);
thr_end_alarm(&alarmed); thr_end_alarm(&alarmed);