Commit cc2b1be5 authored by unknown's avatar unknown

Changes for to control the tables and log clean up.


sql/mysqld.cc:
  Added Monty's code for to call the handler of named pipes
  at shutdown.
  Change the code to call the stop service after the clean up.
  Change the create/open the mysql.err files for to print the
  InnoDB start messages.
sql/nt_servc.cc:
  Modify the WaitHint for to kill the service.
  This will be modify for to be defined through an user variable.
parent 4c3ed5e9
...@@ -469,15 +469,28 @@ static void close_connections(void) ...@@ -469,15 +469,28 @@ static void close_connections(void)
} }
} }
#ifdef __NT__ #ifdef __NT__
if ( hPipe != INVALID_HANDLE_VALUE ) if ( hPipe != INVALID_HANDLE_VALUE )
{
HANDLE temp;
DBUG_PRINT( "quit", ("Closing named pipes") );
/* Create connection to the handle named pipe handler to break the loop */
if ((temp = CreateFile(szPipeName,
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL )) != INVALID_HANDLE_VALUE)
{ {
HANDLE hTempPipe = &hPipe; WaitNamedPipe(szPipeName, 1000);
DBUG_PRINT( "quit", ("Closing named pipes") ); DWORD dwMode = PIPE_READMODE_BYTE | PIPE_WAIT;
hPipe = INVALID_HANDLE_VALUE; SetNamedPipeHandleState(temp, &dwMode, NULL, NULL);
CancelIo( hTempPipe ); CancelIo(temp);
DisconnectNamedPipe( hTempPipe ); DisconnectNamedPipe(temp);
CloseHandle( hTempPipe ); CloseHandle(temp);
} }
}
#endif #endif
#ifdef HAVE_SYS_UN_H #ifdef HAVE_SYS_UN_H
if (unix_sock != INVALID_SOCKET) if (unix_sock != INVALID_SOCKET)
...@@ -1857,6 +1870,14 @@ The server will not act as a slave."); ...@@ -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."); ...@@ -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)
{ FreeConsole(); // Remove window
freopen(MYSQL_ERR_FILE,"a+",stdout);
freopen(MYSQL_ERR_FILE,"a+",stderr);
FreeConsole(); // Remove window
}
#endif #endif
/* /*
...@@ -1986,7 +2002,7 @@ The server will not act as a slave."); ...@@ -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,34 +2060,32 @@ The server will not act as a slave."); ...@@ -2044,34 +2060,32 @@ 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
if (Service.IsNT())
/* 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(start_mode) if(start_mode)
{ Service.Stop();
if (WaitForSingleObject(hEventShutdown,1000)==WAIT_TIMEOUT)
Service.Stop();
}
else else
{ {
Service.SetShutdownEvent(0); Service.SetShutdownEvent(0);
if(hEventShutdown) CloseHandle(hEventShutdown); if(hEventShutdown) CloseHandle(hEventShutdown);
} }
} }
else else
{ {
Service.SetShutdownEvent(0); Service.SetShutdownEvent(0);
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() ...@@ -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) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment