Commit a4a15045 authored by miguel@light.local's avatar miguel@light.local
Browse files

Changes for to control the tables and log clean up.

parent fce63b00
Loading
Loading
Loading
Loading
+46 −32
Original line number Diff line number Diff line
@@ -471,12 +471,25 @@ static void close_connections(void)
#ifdef __NT__
if ( hPipe != INVALID_HANDLE_VALUE )
{
    HANDLE hTempPipe = &hPipe;
  HANDLE temp;
  DBUG_PRINT( "quit", ("Closing named pipes") );
    hPipe = INVALID_HANDLE_VALUE;
    CancelIo( hTempPipe );
    DisconnectNamedPipe( hTempPipe );
    CloseHandle( hTempPipe );
     
   /* 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)
  {
    WaitNamedPipe(szPipeName, 1000);
    DWORD dwMode = PIPE_READMODE_BYTE | PIPE_WAIT;
    SetNamedPipeHandleState(temp, &dwMode, NULL, NULL);
    CancelIo(temp);
    DisconnectNamedPipe(temp);
    CloseHandle(temp);
  }
 }
#endif
#ifdef HAVE_SYS_UN_H
@@ -1857,6 +1870,14 @@ The server will not act as a slave.");
  if (opt_slow_log)
    open_log(&mysql_slow_log, glob_hostname, opt_slow_logname, "-slow.log",
	     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())
  {
    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 */

#ifdef __WIN__
#define MYSQL_ERR_FILE "mysql.err"
  if (!opt_console)
  {
    freopen(MYSQL_ERR_FILE,"a+",stdout);
    freopen(MYSQL_ERR_FILE,"a+",stderr);
   FreeConsole();				// Remove window
  }
#endif

  /*
@@ -1986,7 +2002,7 @@ The server will not act as a slave.");
#ifdef __NT__
  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
  {
@@ -2044,14 +2060,20 @@ The server will not act as a slave.");
#ifdef EXTRA_DEBUG
  sql_print_error("After lock_thread_count");
#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(start_mode)
    {
      if (WaitForSingleObject(hEventShutdown,1000)==WAIT_TIMEOUT)
     Service.Stop();
    }
    else
    {
      Service.SetShutdownEvent(0);
@@ -2064,14 +2086,6 @@ The server will not act as a slave.");
    if(hEventShutdown) CloseHandle(hEventShutdown);
 }
#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);
  exit(0);
  return(0);					/* purecov: deadcode */
+2 −2
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@ NTService::NTService()

    //time-out variables
    nStartTimeOut    = 15000;
    nStopTimeOut     = 15000;
    nStopTimeOut     = 86400000;
    nPauseTimeOut    = 5000;
    nResumeTimeOut   = 5000;

@@ -253,7 +253,7 @@ void NTService::ServiceMain(DWORD argc, LPTSTR *argv)
  WaitForSingleObject (pService->hExitEvent, INFINITE);

  // wait for thread to exit
  if (WaitForSingleObject (pService->hThreadHandle, 1000) == WAIT_TIMEOUT)
  if (WaitForSingleObject (pService->hThreadHandle, INFINITE) == WAIT_TIMEOUT)
   CloseHandle(pService->hThreadHandle);

  pService->Exit(0);