Go to the source code of this file.
◆ __acrt_freeptd()
Definition at line 322 of file per_thread_data.cpp.
323{
325 if (!ptd_head)
326 {
327 return;
328 }
329
332}
BOOL WINAPI __acrt_FlsSetValue(_In_ DWORD dwFlsIndex, _In_opt_ PVOID lpFlsData)
static void WINAPI destroy_fls(void *)
static unsigned long __acrt_flsindex
static __forceinline __acrt_ptd * try_get_ptd_head()
Referenced by __acrt_thread_detach().
◆ __acrt_getptd()
Definition at line 298 of file per_thread_data.cpp.
299{
302 {
304 }
305
307}
_In_ size_t const _In_ int _In_ bool const _In_ unsigned const _In_ __acrt_rounding_mode const _Inout_ __crt_cached_ptd_host & ptd
static __forceinline __acrt_ptd *__cdecl internal_getptd_noexit()
Referenced by ___lc_codepage_func(), ___lc_collate_cp_func(), ___lc_locale_name_func(), ___mb_cur_max_func(), __acrt_get_qualified_locale(), __acrt_get_qualified_locale_downlevel(), __acrt_update_thread_locale_data(), __acrt_update_thread_multibyte_data(), __fpecode(), __p___mb_cur_max(), __pctype_func(), __pxcptinfoptrs(), _configthreadlocale(), _expandlocale(), _get_current_locale(), _get_terminate(), _mbstok_l(), _set_thread_local_invalid_parameter_handler(), _setmbcp(), _wsetlocale(), _wsetlocale_set_cat(), CountryEnumProc(), fast_check_current_locale(), GetLcidFromCountry(), GetLcidFromLangCountry(), GetLcidFromLanguage(), LangCountryEnumProc(), LangCountryEnumProcEx(), LanguageEnumProc(), LanguageEnumProcEx(), localeconv(), rand(), set_terminate(), setlocale(), srand(), strtok(), terminate(), TestDefaultLanguage(), thread_start(), and wcstok().
◆ __acrt_getptd_head()
◆ __acrt_getptd_noexit()
Definition at line 293 of file per_thread_data.cpp.
Referenced by __acrt_initialize_ptd(), __acrt_thread_attach(), __doserrno(), __getgmtimebuf(), _errno(), _get_thread_local_invalid_parameter_handler(), _seh_filter_exe(), _set_doserrno(), _set_errno(), _Success_(), common_asctime_get_ptd_buffer(), common_end_thread(), common_strerror(), get_tmpnam_ptd_buffer(), raise(), and signal().
◆ __acrt_getptd_noexit_explicit()
◆ __acrt_initialize_ptd()
Definition at line 28 of file per_thread_data.cpp.
29{
32 {
33 return false;
34 }
35
37 {
39 return false;
40 }
41
42 return true;
43}
DWORD WINAPI __acrt_FlsAlloc(_In_opt_ PFLS_CALLBACK_FUNCTION lpCallback)
__acrt_ptd *__cdecl __acrt_getptd_noexit()
bool __cdecl __acrt_uninitialize_ptd(bool)
#define FLS_OUT_OF_INDEXES
◆ __acrt_uninitialize_ptd()
◆ __threadhandle()
◆ __threadid()
This file has no copyright assigned and is placed in the Public Domain. This file is part of the w64 mingw-runtime package. No warranty is given; refer to the file DISCLAIMER within this package.
Definition at line 337 of file per_thread_data.cpp.
338{
340}
DWORD WINAPI GetCurrentThreadId(void)
◆ _Success_()
Definition at line 217 of file per_thread_data.cpp.
219{
220
221
222
223
224
225
226
227 static void*
const reentrancy_sentinel =
reinterpret_cast<void*
>(
SIZE_MAX);
228
230 if (existing_ptd_head == reentrancy_sentinel)
231 {
232 return nullptr;
233 }
234 else if (existing_ptd_head != nullptr)
235 {
236 return existing_ptd_head;
237 }
238
240 {
241 return nullptr;
242 }
243
244 __crt_unique_heap_ptr<__acrt_ptd> new_ptd_head(_calloc_crt_t(
__acrt_ptd, __crt_state_management::state_index_count));
245 if (!new_ptd_head)
246 {
248 return nullptr;
249 }
250
252 {
254 return nullptr;
255 }
256
258 return new_ptd_head.detach();
259}
static void __cdecl construct_ptd_array(__acrt_ptd *const ptd)
◆ construct_ptd()
Definition at line 84 of file per_thread_data.cpp.
88{
91
92
93
94
95
97
99
100
101
102 ptd->_setloc_data._cachein[0] =
L'C';
103 ptd->_setloc_data._cacheout[0] =
L'C';
104
105
106 ptd->_setloc_downlevel_data =
nullptr;
107
109 {
111 });
112
113
114
116 {
118 });
119}
@ __acrt_multibyte_cp_lock
struct __crt_signal_action_t const __acrt_exception_action_table[]
__crt_multibyte_data __acrt_initial_multibyte_data
#define _GLOBAL_LOCALE_BIT
long __cdecl _InterlockedIncrement(_Interlocked_operand_ long volatile *_Addend)
static void __cdecl replace_current_thread_locale_nolock(__acrt_ptd *const ptd, __crt_locale_data *const new_locale_info)
Referenced by construct_ptd_array().
◆ construct_ptd_array()
Definition at line 123 of file per_thread_data.cpp.
124{
125 for (
size_t i = 0;
i != __crt_state_management::state_index_count; ++
i)
126 {
128 }
129}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
__crt_state_management::dual_state_global< __crt_locale_data * > __acrt_current_locale_data
static void __cdecl construct_ptd(__acrt_ptd *const ptd, __crt_locale_data **const locale_data)
Referenced by _Success_().
◆ destroy_fls()
◆ destroy_ptd()
Definition at line 133 of file per_thread_data.cpp.
134{
136 {
138 }
139
149
151 {
153 if (!multibyte_data)
154 {
155 return;
156 }
157
159 {
160 return;
161 }
162
164 {
165 return;
166 }
167
169 });
170
172 {
174 });
175}
long __cdecl _InterlockedDecrement(_Interlocked_operand_ long volatile *_Addend)
Referenced by destroy_ptd_array().
◆ destroy_ptd_array()
Definition at line 179 of file per_thread_data.cpp.
180{
181 for (
size_t i = 0;
i != __crt_state_management::state_index_count; ++
i)
182 {
184 }
185}
static void __cdecl destroy_ptd(__acrt_ptd *const ptd)
Referenced by destroy_fls().
◆ internal_getptd_noexit() [1/2]
◆ internal_getptd_noexit() [2/2]
static __forceinline __acrt_ptd *__cdecl internal_getptd_noexit |
( |
__crt_scoped_get_last_error_reset const & |
last_error_reset, |
|
|
size_t const |
global_state_index |
|
) |
| |
throw | ( | |
| ) | | |
|
static |
Definition at line 265 of file per_thread_data.cpp.
269{
271 __acrt_ptd*
const ptd_head = internal_get_ptd_head();
272 if (!ptd_head)
273 {
274 return nullptr;
275 }
276
277 return ptd_head + global_state_index;
278}
#define UNREFERENCED_PARAMETER(P)
◆ replace_current_thread_locale_nolock()
Definition at line 58 of file per_thread_data.cpp.
62{
63 if (
ptd->_locale_info)
64 {
68 ptd->_locale_info->refcount == 0)
69 {
71 }
72 }
73
74 ptd->_locale_info = new_locale_info;
75 if (
ptd->_locale_info)
76 {
78 }
79}
void __cdecl __acrt_release_locale_ref(__crt_locale_data *)
void __cdecl __acrt_free_locale(__crt_locale_data *)
__crt_locale_data __acrt_initial_locale_data
void __cdecl __acrt_add_locale_ref(__crt_locale_data *)
Referenced by construct_ptd(), and destroy_ptd().
◆ try_get_ptd_head()
static __forceinline __acrt_ptd * try_get_ptd_head |
( |
| ) |
|
throw | ( | |
| ) | | |
|
static |
Definition at line 200 of file per_thread_data.cpp.
201{
202
204 {
205 return nullptr;
206 }
207
209 if (!ptd_head)
210 {
211 return nullptr;
212 }
213
214 return ptd_head;
215}
PVOID WINAPI __acrt_FlsGetValue(_In_ DWORD dwFlsIndex)
Referenced by __acrt_freeptd(), and _Success_().
◆ __acrt_flsindex