00001 /***************************************************************************** 00002 00003 Copyright (C) 1995, 2009, Innobase Oy. All Rights Reserved. 00004 00005 This program is free software; you can redistribute it and/or modify it under 00006 the terms of the GNU General Public License as published by the Free Software 00007 Foundation; version 2 of the License. 00008 00009 This program is distributed in the hope that it will be useful, but WITHOUT 00010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00011 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License along with 00014 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin 00015 St, Fifth Floor, Boston, MA 02110-1301 USA 00016 00017 *****************************************************************************/ 00018 00019 /**************************************************/ 00026 /* This module implements storage private to each thread, 00027 a capability useful in some situations like storing the 00028 OS handle to the current thread, or its priority. */ 00029 00030 #pragma once 00031 #ifndef thr0loc_h 00032 #define thr0loc_h 00033 00034 #include "univ.i" 00035 #include "os0thread.h" 00036 00037 /****************************************************************/ 00039 UNIV_INTERN 00040 void 00041 thr_local_init(void); 00042 /*================*/ 00043 /****************************************************************/ 00045 UNIV_INTERN 00046 void 00047 thr_local_close(void); 00048 /*=================*/ 00049 /*******************************************************************/ 00051 UNIV_INTERN 00052 void 00053 thr_local_create(void); 00054 /*==================*/ 00055 /*******************************************************************/ 00057 UNIV_INTERN 00058 void 00059 thr_local_free( 00060 /*===========*/ 00061 os_thread_id_t id); 00062 /*******************************************************************/ 00065 UNIV_INTERN 00066 ulint 00067 thr_local_get_slot_no( 00068 /*==================*/ 00069 os_thread_id_t id); 00070 /*******************************************************************/ 00072 UNIV_INTERN 00073 void 00074 thr_local_set_slot_no( 00075 /*==================*/ 00076 os_thread_id_t id, 00077 ulint slot_no); 00078 /*******************************************************************/ 00082 UNIV_INTERN 00083 ibool* 00084 thr_local_get_in_ibuf_field(void); 00085 /*=============================*/ 00086 00087 #ifndef UNIV_NONINL 00088 #include "thr0loc.ic" 00089 #endif 00090 00091 #endif