• Marko Mäkelä's avatar
    Bug 12323643 - CLEAN UP THE INNODB THREAD SHUTDOWN AND ASSERTIONS (WL#5136) · 67496884
    Marko Mäkelä authored
    On shutdown, do not exit threads in os_event_wait(). This method of
    exiting was only used by the I/O handler threads. Exit them on a
    higher level.
    
    os_event_wait_low(), os_event_wait_time_low(): Do not exit on shutdown.
    
    os_thread_exit(), ut_dbg_assertion_failed(), ut_print_timestamp(): Add
    attribute cold, so that GCC knows that these functions are rarely
    invoked and can be optimized for size.
    
    os_aio_linux_collect(): Return on shutdown.
    
    os_aio_linux_handle(), os_aio_simulated_handle(), os_aio_windows_handle():
    Set *message1 = *message2 = NULL and return TRUE on shutdown.
    
    fil_aio_wait(): Return on shutdown.
    
    logs_empty_and_mark_files_at_shutdown(): Even in very fast shutdown
    (innodb_fast_shutdown=2), allow the background threads to exit, but
    skip the flushing and log checkpointing.
    
    innobase_shutdown_for_mysql(): Always wait for all the threads to exit.
    
    rb:633 approved by Sunny Bains
    67496884
srv0srv.c 92.4 KB