#At lp:maria

 2803 kniel...@knielsen-hq.org  2010-01-15
      Fix crashes by taking kernel mutex when calling srv_table_reserve_slot() 
during thread startup.
      modified:
        storage/xtradb/srv/srv0srv.c

=== modified file 'storage/xtradb/srv/srv0srv.c'
--- a/storage/xtradb/srv/srv0srv.c      2010-01-15 15:58:25 +0000
+++ b/storage/xtradb/srv/srv0srv.c      2010-01-15 19:48:33 +0000
@@ -2559,10 +2559,9 @@ srv_master_thread(
        srv_main_thread_process_no = os_proc_get_number();
        srv_main_thread_id = os_thread_pf(os_thread_get_curr_id());
 
-       srv_table_reserve_slot(SRV_MASTER);
-
        mutex_enter(&kernel_mutex);
 
+       srv_table_reserve_slot(SRV_MASTER);
        srv_n_threads_active[SRV_MASTER]++;
 
        mutex_exit(&kernel_mutex);
@@ -3167,8 +3166,8 @@ srv_purge_thread(
                os_thread_pf(os_thread_get_curr_id()));
 #endif
 
-       srv_table_reserve_slot(SRV_PURGE);
        mutex_enter(&kernel_mutex);
+       srv_table_reserve_slot(SRV_PURGE);
        srv_n_threads_active[SRV_PURGE]++;
        mutex_exit(&kernel_mutex);
 
@@ -3255,8 +3254,8 @@ srv_purge_worker_thread(
        fprintf(stderr, "Purge worker thread starts, id %lu\n",
                os_thread_pf(os_thread_get_curr_id()));
 #endif
-       srv_table_reserve_slot(SRV_PURGE_WORKER);
        mutex_enter(&kernel_mutex);
+       srv_table_reserve_slot(SRV_PURGE_WORKER);
        srv_n_threads_active[SRV_PURGE_WORKER]++;
        mutex_exit(&kernel_mutex);
 


_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to