Changes for to control the tables and log clean up.
This commit is contained in:
parent
fce63b0044
commit
a4a150454e
@ -471,12 +471,25 @@ static void close_connections(void)
|
|||||||
#ifdef __NT__
|
#ifdef __NT__
|
||||||
if ( hPipe != INVALID_HANDLE_VALUE )
|
if ( hPipe != INVALID_HANDLE_VALUE )
|
||||||
{
|
{
|
||||||
HANDLE hTempPipe = &hPipe;
|
HANDLE temp;
|
||||||
DBUG_PRINT( "quit", ("Closing named pipes") );
|
DBUG_PRINT( "quit", ("Closing named pipes") );
|
||||||
hPipe = INVALID_HANDLE_VALUE;
|
|
||||||
CancelIo( hTempPipe );
|
/* Create connection to the handle named pipe handler to break the loop */
|
||||||
DisconnectNamedPipe( hTempPipe );
|
if ((temp = CreateFile(szPipeName,
|
||||||
CloseHandle( hTempPipe );
|
GENERIC_READ | GENERIC_WRITE,
|
||||||
|
0,
|
||||||
|
NULL,
|
||||||
|
OPEN_EXISTING,
|
||||||
|
0,
|
||||||
|
NULL )) != INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
WaitNamedPipe(szPipeName, 1000);
|
||||||
|
DWORD dwMode = PIPE_READMODE_BYTE | PIPE_WAIT;
|
||||||
|
SetNamedPipeHandleState(temp, &dwMode, NULL, NULL);
|
||||||
|
CancelIo(temp);
|
||||||
|
DisconnectNamedPipe(temp);
|
||||||
|
CloseHandle(temp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_SYS_UN_H
|
#ifdef HAVE_SYS_UN_H
|
||||||
@ -1857,6 +1870,14 @@ The server will not act as a slave.");
|
|||||||
if (opt_slow_log)
|
if (opt_slow_log)
|
||||||
open_log(&mysql_slow_log, glob_hostname, opt_slow_logname, "-slow.log",
|
open_log(&mysql_slow_log, glob_hostname, opt_slow_logname, "-slow.log",
|
||||||
LOG_NORMAL);
|
LOG_NORMAL);
|
||||||
|
#ifdef __WIN__
|
||||||
|
#define MYSQL_ERR_FILE "mysql.err"
|
||||||
|
if (!opt_console)
|
||||||
|
{
|
||||||
|
freopen(MYSQL_ERR_FILE,"a+",stdout);
|
||||||
|
freopen(MYSQL_ERR_FILE,"a+",stderr);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (ha_init())
|
if (ha_init())
|
||||||
{
|
{
|
||||||
sql_print_error("Can't init databases");
|
sql_print_error("Can't init databases");
|
||||||
@ -1882,13 +1903,8 @@ The server will not act as a slave.");
|
|||||||
ft_init_stopwords(ft_precompiled_stopwords); /* SerG */
|
ft_init_stopwords(ft_precompiled_stopwords); /* SerG */
|
||||||
|
|
||||||
#ifdef __WIN__
|
#ifdef __WIN__
|
||||||
#define MYSQL_ERR_FILE "mysql.err"
|
|
||||||
if (!opt_console)
|
if (!opt_console)
|
||||||
{
|
|
||||||
freopen(MYSQL_ERR_FILE,"a+",stdout);
|
|
||||||
freopen(MYSQL_ERR_FILE,"a+",stderr);
|
|
||||||
FreeConsole(); // Remove window
|
FreeConsole(); // Remove window
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1986,7 +2002,7 @@ The server will not act as a slave.");
|
|||||||
#ifdef __NT__
|
#ifdef __NT__
|
||||||
if (hPipe == INVALID_HANDLE_VALUE && !have_tcpip)
|
if (hPipe == INVALID_HANDLE_VALUE && !have_tcpip)
|
||||||
{
|
{
|
||||||
sql_print_error("TCP/IP must be installed on Win98 platforms");
|
sql_print_error("TCP/IP or Named Pipes should be installed on NT OS");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2044,14 +2060,20 @@ The server will not act as a slave.");
|
|||||||
#ifdef EXTRA_DEBUG
|
#ifdef EXTRA_DEBUG
|
||||||
sql_print_error("After lock_thread_count");
|
sql_print_error("After lock_thread_count");
|
||||||
#endif
|
#endif
|
||||||
#else
|
#endif
|
||||||
|
|
||||||
|
/* Wait until cleanup is done */
|
||||||
|
(void) pthread_mutex_lock(&LOCK_thread_count);
|
||||||
|
while (!ready_to_exit)
|
||||||
|
{
|
||||||
|
pthread_cond_wait(&COND_thread_count,&LOCK_thread_count);
|
||||||
|
}
|
||||||
|
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
||||||
|
#ifdef __WIN__
|
||||||
if (Service.IsNT())
|
if (Service.IsNT())
|
||||||
{
|
{
|
||||||
if(start_mode)
|
if(start_mode)
|
||||||
{
|
|
||||||
if (WaitForSingleObject(hEventShutdown,1000)==WAIT_TIMEOUT)
|
|
||||||
Service.Stop();
|
Service.Stop();
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Service.SetShutdownEvent(0);
|
Service.SetShutdownEvent(0);
|
||||||
@ -2064,14 +2086,6 @@ The server will not act as a slave.");
|
|||||||
if(hEventShutdown) CloseHandle(hEventShutdown);
|
if(hEventShutdown) CloseHandle(hEventShutdown);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Wait until cleanup is done */
|
|
||||||
(void) pthread_mutex_lock(&LOCK_thread_count);
|
|
||||||
while (!ready_to_exit)
|
|
||||||
{
|
|
||||||
pthread_cond_wait(&COND_thread_count,&LOCK_thread_count);
|
|
||||||
}
|
|
||||||
(void) pthread_mutex_unlock(&LOCK_thread_count);
|
|
||||||
my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
|
my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
|
||||||
exit(0);
|
exit(0);
|
||||||
return(0); /* purecov: deadcode */
|
return(0); /* purecov: deadcode */
|
||||||
|
@ -28,7 +28,7 @@ NTService::NTService()
|
|||||||
|
|
||||||
//time-out variables
|
//time-out variables
|
||||||
nStartTimeOut = 15000;
|
nStartTimeOut = 15000;
|
||||||
nStopTimeOut = 15000;
|
nStopTimeOut = 86400000;
|
||||||
nPauseTimeOut = 5000;
|
nPauseTimeOut = 5000;
|
||||||
nResumeTimeOut = 5000;
|
nResumeTimeOut = 5000;
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ void NTService::ServiceMain(DWORD argc, LPTSTR *argv)
|
|||||||
WaitForSingleObject (pService->hExitEvent, INFINITE);
|
WaitForSingleObject (pService->hExitEvent, INFINITE);
|
||||||
|
|
||||||
// wait for thread to exit
|
// wait for thread to exit
|
||||||
if (WaitForSingleObject (pService->hThreadHandle, 1000) == WAIT_TIMEOUT)
|
if (WaitForSingleObject (pService->hThreadHandle, INFINITE) == WAIT_TIMEOUT)
|
||||||
CloseHandle(pService->hThreadHandle);
|
CloseHandle(pService->hThreadHandle);
|
||||||
|
|
||||||
pService->Exit(0);
|
pService->Exit(0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user