• Magne Mahre's avatar
    Bug#11765237 - 58179: CANNOT START MYSQLD WITH APP VERIFIER · 236833bb
    Magne Mahre authored
    Bug#11763065 - 55730: KILL_SERVER() CALLS SETEVENT ON A NULL 
                   HANDLE, SMEM_EVENT_CONNECT_REQUEST
          
    Application Verifier is a Microsoft tool used for
    detecting certain classes of programming errors.
    In particular, MS Windows OS resource usage is
    monitored for wrong usage (handles, thread local
    storage, critical sections, ...)
          
    In MySQL 5.5.x, an error was introduced where an
    object on thread local storage was used before the
    TLS and the object was created.
          
    The fix has been to move the mysys initialization
    to an earlier stage in the boot process when built for
    Windows.  For non-win builds, the init already happens
    early.
    
    Some un-tangling of calls to my_init(), my_basic_init()
    and my_thread_global_init() was done.  There is no
    longer a need to do init in steps, so the full my_init()
    is called instead of my_init_basic().
          
    In addition,  Bug#11763065 was fixed.  The event handle
    'smem_event_connect_request' is only created if
    'opt_enable_shared_memory' is set.  When killing the
    server, an event was flagged on the handle
    unconditionally.  Added a test, so it will only be
    flagged if created.
    
    
    include/my_pthread.h:
      my_thread_basic_global_init is no longer
      necessary, and the my_thread_basic_global_reinit 
      function is renamed to reflect that it now
      reinits mutexes and condvars originating from
      my_thread_global_init
    mysys/my_thr_init.c:
      Reorganized code.
    236833bb
my_thr_init.c 14.7 KB