/src/server/include/mysql/psi/mysql_thread.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* Copyright (c) 2008, 2023, Oracle and/or its affiliates. |
2 | | Copyright (c) 2020, 2021, MariaDB Corporation. |
3 | | |
4 | | This program is free software; you can redistribute it and/or modify |
5 | | it under the terms of the GNU General Public License, version 2.0, |
6 | | as published by the Free Software Foundation. |
7 | | |
8 | | This program is also distributed with certain software (including |
9 | | but not limited to OpenSSL) that is licensed under separate terms, |
10 | | as designated in a particular file or component or in included license |
11 | | documentation. The authors of MySQL hereby grant you an additional |
12 | | permission to link the program and your derivative works with the |
13 | | separately licensed software that they have included with MySQL. |
14 | | |
15 | | This program is distributed in the hope that it will be useful, |
16 | | but WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
18 | | GNU General Public License, version 2.0, for more details. |
19 | | |
20 | | You should have received a copy of the GNU General Public License |
21 | | along with this program; if not, write to the Free Software Foundation, |
22 | | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ |
23 | | |
24 | | #ifndef MYSQL_THREAD_H |
25 | | #define MYSQL_THREAD_H |
26 | | |
27 | | /** |
28 | | @file mysql/psi/mysql_thread.h |
29 | | Instrumentation helpers for mysys threads, mutexes, |
30 | | read write locks and conditions. |
31 | | This header file provides the necessary declarations |
32 | | to use the mysys thread API with the performance schema instrumentation. |
33 | | In some compilers (SunStudio), 'static inline' functions, when declared |
34 | | but not used, are not optimized away (because they are unused) by default, |
35 | | so that including a static inline function from a header file does |
36 | | create unwanted dependencies, causing unresolved symbols at link time. |
37 | | Other compilers, like gcc, optimize these dependencies by default. |
38 | | |
39 | | Since the instrumented APIs declared here are wrapper on top |
40 | | of my_pthread / safemutex / etc APIs, |
41 | | including mysql/psi/mysql_thread.h assumes that |
42 | | the dependency on my_pthread and safemutex already exists. |
43 | | */ |
44 | | /* |
45 | | Note: there are several orthogonal dimensions here. |
46 | | |
47 | | Dimension 1: Instrumentation |
48 | | HAVE_PSI_INTERFACE is defined when the instrumentation is compiled in. |
49 | | This may happen both in debug or production builds. |
50 | | |
51 | | Dimension 2: Debug |
52 | | SAFE_MUTEX is defined when debug is compiled in. |
53 | | This may happen both with and without instrumentation. |
54 | | |
55 | | Dimension 3: Platform |
56 | | Mutexes are implemented with one of: |
57 | | - the pthread library |
58 | | - fast mutexes |
59 | | - window apis |
60 | | This is implemented by various macro definitions in my_pthread.h |
61 | | |
62 | | This causes complexity with '#ifdef'-ery that can't be avoided. |
63 | | */ |
64 | | |
65 | | #include "mysql/psi/psi.h" |
66 | | #ifdef MYSQL_SERVER |
67 | | #ifndef MYSQL_DYNAMIC_PLUGIN |
68 | | #include "pfs_thread_provider.h" |
69 | | #endif |
70 | | #endif |
71 | | |
72 | | #ifndef PSI_MUTEX_CALL |
73 | 0 | #define PSI_MUTEX_CALL(M) PSI_DYNAMIC_CALL(M) |
74 | | #endif |
75 | | |
76 | | #ifndef PSI_RWLOCK_CALL |
77 | 0 | #define PSI_RWLOCK_CALL(M) PSI_DYNAMIC_CALL(M) |
78 | | #endif |
79 | | |
80 | | #ifndef PSI_COND_CALL |
81 | 0 | #define PSI_COND_CALL(M) PSI_DYNAMIC_CALL(M) |
82 | | #endif |
83 | | |
84 | | #ifndef PSI_THREAD_CALL |
85 | 0 | #define PSI_THREAD_CALL(M) PSI_DYNAMIC_CALL(M) |
86 | | #endif |
87 | | |
88 | | /** |
89 | | @defgroup Thread_instrumentation Thread Instrumentation |
90 | | @ingroup Instrumentation_interface |
91 | | @{ |
92 | | */ |
93 | | |
94 | | #ifdef HAVE_PSI_THREAD_INTERFACE |
95 | 0 | #define PSI_CALL_delete_current_thread PSI_THREAD_CALL(delete_current_thread) |
96 | | #define PSI_CALL_get_thread PSI_THREAD_CALL(get_thread) |
97 | | #define PSI_CALL_new_thread PSI_THREAD_CALL(new_thread) |
98 | | #define PSI_CALL_register_thread PSI_THREAD_CALL(register_thread) |
99 | | #define PSI_CALL_set_thread PSI_THREAD_CALL(set_thread) |
100 | | #define PSI_CALL_set_thread_THD PSI_THREAD_CALL(set_thread_THD) |
101 | | #define PSI_CALL_set_thread_connect_attrs PSI_THREAD_CALL(set_thread_connect_attrs) |
102 | | #define PSI_CALL_set_thread_db PSI_THREAD_CALL(set_thread_db) |
103 | | #define PSI_CALL_set_thread_id PSI_THREAD_CALL(set_thread_id) |
104 | | #define PSI_CALL_set_thread_os_id PSI_THREAD_CALL(set_thread_os_id) |
105 | | #define PSI_CALL_set_thread_info PSI_THREAD_CALL(set_thread_info) |
106 | | #define PSI_CALL_set_thread_start_time PSI_THREAD_CALL(set_thread_start_time) |
107 | | #define PSI_CALL_set_thread_account PSI_THREAD_CALL(set_thread_account) |
108 | | #define PSI_CALL_spawn_thread PSI_THREAD_CALL(spawn_thread) |
109 | | #define PSI_CALL_set_connection_type PSI_THREAD_CALL(set_connection_type) |
110 | | #else |
111 | | #define PSI_CALL_delete_current_thread() do { } while(0) |
112 | | #define PSI_CALL_get_thread() NULL |
113 | | #define PSI_CALL_new_thread(A1,A2,A3) NULL |
114 | | #define PSI_CALL_register_thread(A1,A2,A3) do { } while(0) |
115 | | #define PSI_CALL_set_thread(A1) do { } while(0) |
116 | | #define PSI_CALL_set_thread_THD(A1,A2) do { } while(0) |
117 | | #define PSI_CALL_set_thread_connect_attrs(A1,A2,A3) 0 |
118 | | #define PSI_CALL_set_thread_db(A1,A2) do { } while(0) |
119 | | #define PSI_CALL_set_thread_id(A1,A2) do { } while(0) |
120 | | #define PSI_CALL_set_thread_os_id(A1) do { } while(0) |
121 | | #define PSI_CALL_set_thread_info(A1, A2) do { } while(0) |
122 | | #define PSI_CALL_set_thread_start_time(A1) do { } while(0) |
123 | | #define PSI_CALL_set_thread_account(A1, A2, A3, A4) do { } while(0) |
124 | | #define PSI_CALL_spawn_thread(A1, A2, A3, A4, A5) 0 |
125 | | #define PSI_CALL_set_connection_type(A) do { } while(0) |
126 | | #endif |
127 | | |
128 | | |
129 | | /** |
130 | | An instrumented mutex structure. |
131 | | @sa mysql_mutex_t |
132 | | */ |
133 | | struct st_mysql_mutex |
134 | | { |
135 | | /** The real mutex. */ |
136 | | #ifdef SAFE_MUTEX |
137 | | safe_mutex_t m_mutex; |
138 | | #else |
139 | | pthread_mutex_t m_mutex; |
140 | | #endif |
141 | | /** |
142 | | The instrumentation hook. |
143 | | Note that this hook is not conditionally defined, |
144 | | for binary compatibility of the @c mysql_mutex_t interface. |
145 | | */ |
146 | | struct PSI_mutex *m_psi; |
147 | | }; |
148 | | |
149 | | /** |
150 | | Type of an instrumented mutex. |
151 | | @c mysql_mutex_t is a drop-in replacement for @c pthread_mutex_t. |
152 | | @sa mysql_mutex_assert_owner |
153 | | @sa mysql_mutex_assert_not_owner |
154 | | @sa mysql_mutex_init |
155 | | @sa mysql_mutex_lock |
156 | | @sa mysql_mutex_unlock |
157 | | @sa mysql_mutex_destroy |
158 | | */ |
159 | | typedef struct st_mysql_mutex mysql_mutex_t; |
160 | | |
161 | | /** |
162 | | An instrumented rwlock structure. |
163 | | @sa mysql_rwlock_t |
164 | | */ |
165 | | struct st_mysql_rwlock |
166 | | { |
167 | | /** The real rwlock */ |
168 | | rw_lock_t m_rwlock; |
169 | | /** |
170 | | The instrumentation hook. |
171 | | Note that this hook is not conditionally defined, |
172 | | for binary compatibility of the @c mysql_rwlock_t interface. |
173 | | */ |
174 | | struct PSI_rwlock *m_psi; |
175 | | }; |
176 | | |
177 | | /** |
178 | | An instrumented prlock structure. |
179 | | @sa mysql_prlock_t |
180 | | */ |
181 | | struct st_mysql_prlock |
182 | | { |
183 | | /** The real prlock */ |
184 | | rw_pr_lock_t m_prlock; |
185 | | /** |
186 | | The instrumentation hook. |
187 | | Note that this hook is not conditionally defined, |
188 | | for binary compatibility of the @c mysql_rwlock_t interface. |
189 | | */ |
190 | | struct PSI_rwlock *m_psi; |
191 | | }; |
192 | | |
193 | | /** |
194 | | Type of an instrumented rwlock. |
195 | | @c mysql_rwlock_t is a drop-in replacement for @c pthread_rwlock_t. |
196 | | @sa mysql_rwlock_init |
197 | | @sa mysql_rwlock_rdlock |
198 | | @sa mysql_rwlock_tryrdlock |
199 | | @sa mysql_rwlock_wrlock |
200 | | @sa mysql_rwlock_trywrlock |
201 | | @sa mysql_rwlock_unlock |
202 | | @sa mysql_rwlock_destroy |
203 | | */ |
204 | | typedef struct st_mysql_rwlock mysql_rwlock_t; |
205 | | |
206 | | /** |
207 | | Type of an instrumented prlock. |
208 | | A prlock is a read write lock that 'prefers readers' (pr). |
209 | | @c mysql_prlock_t is a drop-in replacement for @c rw_pr_lock_t. |
210 | | @sa mysql_prlock_init |
211 | | @sa mysql_prlock_rdlock |
212 | | @sa mysql_prlock_wrlock |
213 | | @sa mysql_prlock_unlock |
214 | | @sa mysql_prlock_destroy |
215 | | */ |
216 | | typedef struct st_mysql_prlock mysql_prlock_t; |
217 | | |
218 | | /** |
219 | | An instrumented cond structure. |
220 | | @sa mysql_cond_t |
221 | | */ |
222 | | struct st_mysql_cond |
223 | | { |
224 | | /** The real condition */ |
225 | | pthread_cond_t m_cond; |
226 | | /** |
227 | | The instrumentation hook. |
228 | | Note that this hook is not conditionally defined, |
229 | | for binary compatibility of the @c mysql_cond_t interface. |
230 | | */ |
231 | | struct PSI_cond *m_psi; |
232 | | }; |
233 | | |
234 | | /** |
235 | | Type of an instrumented condition. |
236 | | @c mysql_cond_t is a drop-in replacement for @c pthread_cond_t. |
237 | | @sa mysql_cond_init |
238 | | @sa mysql_cond_wait |
239 | | @sa mysql_cond_timedwait |
240 | | @sa mysql_cond_signal |
241 | | @sa mysql_cond_broadcast |
242 | | @sa mysql_cond_destroy |
243 | | */ |
244 | | typedef struct st_mysql_cond mysql_cond_t; |
245 | | |
246 | | /* |
247 | | Consider the following code: |
248 | | static inline void foo() { bar(); } |
249 | | when foo() is never called. |
250 | | |
251 | | With gcc, foo() is a local static function, so the dependencies |
252 | | are optimized away at compile time, and there is no dependency on bar(). |
253 | | With other compilers (HP, Sun Studio), the function foo() implementation |
254 | | is compiled, and bar() needs to be present to link. |
255 | | |
256 | | Due to the existing header dependencies in MySQL code, this header file |
257 | | is sometime used when it is not needed, which in turn cause link failures |
258 | | on some platforms. |
259 | | The proper fix would be to cut these extra dependencies in the calling code. |
260 | | DISABLE_MYSQL_THREAD_H is a work around to limit dependencies. |
261 | | DISABLE_MYSQL_PRLOCK_H is similar, and is used to disable specifically |
262 | | the prlock wrappers. |
263 | | */ |
264 | | #ifndef DISABLE_MYSQL_THREAD_H |
265 | | |
266 | | #define mysql_mutex_is_owner(M) safe_mutex_is_owner(&(M)->m_mutex) |
267 | | /** |
268 | | @def mysql_mutex_assert_owner(M) |
269 | | Wrapper, to use safe_mutex_assert_owner with instrumented mutexes. |
270 | | @c mysql_mutex_assert_owner is a drop-in replacement |
271 | | for @c safe_mutex_assert_owner. |
272 | | */ |
273 | | #define mysql_mutex_assert_owner(M) \ |
274 | | safe_mutex_assert_owner(&(M)->m_mutex) |
275 | | |
276 | | /** |
277 | | @def mysql_mutex_assert_not_owner(M) |
278 | | Wrapper, to use safe_mutex_assert_not_owner with instrumented mutexes. |
279 | | @c mysql_mutex_assert_not_owner is a drop-in replacement |
280 | | for @c safe_mutex_assert_not_owner. |
281 | | */ |
282 | | #define mysql_mutex_assert_not_owner(M) \ |
283 | | safe_mutex_assert_not_owner(&(M)->m_mutex) |
284 | | |
285 | | #define mysql_mutex_setflags(M, F) \ |
286 | | safe_mutex_setflags(&(M)->m_mutex, (F)) |
287 | | |
288 | | /** |
289 | | @def mysql_prlock_assert_write_owner(M) |
290 | | Drop-in replacement |
291 | | for @c rw_pr_lock_assert_write_owner. |
292 | | */ |
293 | | #define mysql_prlock_assert_write_owner(M) \ |
294 | | rw_pr_lock_assert_write_owner(&(M)->m_prlock) |
295 | | |
296 | | /** |
297 | | @def mysql_prlock_assert_not_write_owner(M) |
298 | | Drop-in replacement |
299 | | for @c rw_pr_lock_assert_not_write_owner. |
300 | | */ |
301 | | #define mysql_prlock_assert_not_write_owner(M) \ |
302 | | rw_pr_lock_assert_not_write_owner(&(M)->m_prlock) |
303 | | |
304 | | /** |
305 | | @def mysql_mutex_register(P1, P2, P3) |
306 | | Mutex registration. |
307 | | */ |
308 | | #define mysql_mutex_register(P1, P2, P3) \ |
309 | 0 | inline_mysql_mutex_register(P1, P2, P3) |
310 | | |
311 | | /** |
312 | | @def mysql_mutex_init(K, M, A) |
313 | | Instrumented mutex_init. |
314 | | @c mysql_mutex_init is a replacement for @c pthread_mutex_init. |
315 | | @param K The PSI_mutex_key for this instrumented mutex |
316 | | @param M The mutex to initialize |
317 | | @param A Mutex attributes |
318 | | */ |
319 | | |
320 | | #ifdef HAVE_PSI_MUTEX_INTERFACE |
321 | | #ifdef SAFE_MUTEX |
322 | | #define mysql_mutex_init(K, M, A) \ |
323 | | inline_mysql_mutex_init(K, M, A, #M, __FILE__, __LINE__) |
324 | | #else |
325 | | #define mysql_mutex_init(K, M, A) \ |
326 | 0 | inline_mysql_mutex_init(K, M, A) |
327 | | #endif |
328 | | #else |
329 | | #ifdef SAFE_MUTEX |
330 | | #define mysql_mutex_init(K, M, A) \ |
331 | | inline_mysql_mutex_init(M, A, #M, __FILE__, __LINE__) |
332 | | #else |
333 | | #define mysql_mutex_init(K, M, A) \ |
334 | | inline_mysql_mutex_init(M, A) |
335 | | #endif |
336 | | #endif |
337 | | |
338 | | /** |
339 | | @def mysql_mutex_destroy(M) |
340 | | Instrumented mutex_destroy. |
341 | | @c mysql_mutex_destroy is a drop-in replacement |
342 | | for @c pthread_mutex_destroy. |
343 | | */ |
344 | | #ifdef SAFE_MUTEX |
345 | | #define mysql_mutex_destroy(M) \ |
346 | | inline_mysql_mutex_destroy(M, __FILE__, __LINE__) |
347 | | #else |
348 | | #define mysql_mutex_destroy(M) \ |
349 | 0 | inline_mysql_mutex_destroy(M) |
350 | | #endif |
351 | | |
352 | | /** |
353 | | @def mysql_mutex_lock(M) |
354 | | Instrumented mutex_lock. |
355 | | @c mysql_mutex_lock is a drop-in replacement for @c pthread_mutex_lock. |
356 | | @param M The mutex to lock |
357 | | */ |
358 | | |
359 | | #if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) |
360 | | #define mysql_mutex_lock(M) \ |
361 | 0 | inline_mysql_mutex_lock(M, __FILE__, __LINE__) |
362 | | #else |
363 | | #define mysql_mutex_lock(M) \ |
364 | | inline_mysql_mutex_lock(M) |
365 | | #endif |
366 | | |
367 | | /** |
368 | | @def mysql_mutex_trylock(M) |
369 | | Instrumented mutex_lock. |
370 | | @c mysql_mutex_trylock is a drop-in replacement |
371 | | for @c pthread_mutex_trylock. |
372 | | */ |
373 | | |
374 | | #if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) |
375 | | #define mysql_mutex_trylock(M) \ |
376 | | inline_mysql_mutex_trylock(M, __FILE__, __LINE__) |
377 | | #else |
378 | | #define mysql_mutex_trylock(M) \ |
379 | | inline_mysql_mutex_trylock(M) |
380 | | #endif |
381 | | |
382 | | /** |
383 | | @def mysql_mutex_unlock(M) |
384 | | Instrumented mutex_unlock. |
385 | | @c mysql_mutex_unlock is a drop-in replacement for @c pthread_mutex_unlock. |
386 | | */ |
387 | | #ifdef SAFE_MUTEX |
388 | | #define mysql_mutex_unlock(M) \ |
389 | | inline_mysql_mutex_unlock(M, __FILE__, __LINE__) |
390 | | #else |
391 | | #define mysql_mutex_unlock(M) \ |
392 | 0 | inline_mysql_mutex_unlock(M) |
393 | | #endif |
394 | | |
395 | | /** |
396 | | @def mysql_rwlock_register(P1, P2, P3) |
397 | | Rwlock registration. |
398 | | */ |
399 | | #define mysql_rwlock_register(P1, P2, P3) \ |
400 | 0 | inline_mysql_rwlock_register(P1, P2, P3) |
401 | | |
402 | | /** |
403 | | @def mysql_rwlock_init(K, RW) |
404 | | Instrumented rwlock_init. |
405 | | @c mysql_rwlock_init is a replacement for @c pthread_rwlock_init. |
406 | | Note that pthread_rwlockattr_t is not supported in MySQL. |
407 | | @param K The PSI_rwlock_key for this instrumented rwlock |
408 | | @param RW The rwlock to initialize |
409 | | */ |
410 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
411 | | #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(K, RW) |
412 | | #else |
413 | | #define mysql_rwlock_init(K, RW) inline_mysql_rwlock_init(RW) |
414 | | #endif |
415 | | |
416 | | /** |
417 | | @def mysql_prlock_init(K, RW) |
418 | | Instrumented rw_pr_init. |
419 | | @c mysql_prlock_init is a replacement for @c rw_pr_init. |
420 | | @param K The PSI_rwlock_key for this instrumented prlock |
421 | | @param RW The prlock to initialize |
422 | | */ |
423 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
424 | | #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(K, RW) |
425 | | #else |
426 | | #define mysql_prlock_init(K, RW) inline_mysql_prlock_init(RW) |
427 | | #endif |
428 | | |
429 | | /** |
430 | | @def mysql_rwlock_destroy(RW) |
431 | | Instrumented rwlock_destroy. |
432 | | @c mysql_rwlock_destroy is a drop-in replacement |
433 | | for @c pthread_rwlock_destroy. |
434 | | */ |
435 | | #define mysql_rwlock_destroy(RW) inline_mysql_rwlock_destroy(RW) |
436 | | |
437 | | /** |
438 | | @def mysql_prlock_destroy(RW) |
439 | | Instrumented rw_pr_destroy. |
440 | | @c mysql_prlock_destroy is a drop-in replacement |
441 | | for @c rw_pr_destroy. |
442 | | */ |
443 | | #define mysql_prlock_destroy(RW) inline_mysql_prlock_destroy(RW) |
444 | | |
445 | | /** |
446 | | @def mysql_rwlock_rdlock(RW) |
447 | | Instrumented rwlock_rdlock. |
448 | | @c mysql_rwlock_rdlock is a drop-in replacement |
449 | | for @c pthread_rwlock_rdlock. |
450 | | */ |
451 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
452 | | #define mysql_rwlock_rdlock(RW) \ |
453 | | inline_mysql_rwlock_rdlock(RW, __FILE__, __LINE__) |
454 | | #else |
455 | | #define mysql_rwlock_rdlock(RW) \ |
456 | | inline_mysql_rwlock_rdlock(RW) |
457 | | #endif |
458 | | |
459 | | /** |
460 | | @def mysql_prlock_rdlock(RW) |
461 | | Instrumented rw_pr_rdlock. |
462 | | @c mysql_prlock_rdlock is a drop-in replacement |
463 | | for @c rw_pr_rdlock. |
464 | | */ |
465 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
466 | | #define mysql_prlock_rdlock(RW) \ |
467 | | inline_mysql_prlock_rdlock(RW, __FILE__, __LINE__) |
468 | | #else |
469 | | #define mysql_prlock_rdlock(RW) \ |
470 | | inline_mysql_prlock_rdlock(RW) |
471 | | #endif |
472 | | |
473 | | /** |
474 | | @def mysql_rwlock_wrlock(RW) |
475 | | Instrumented rwlock_wrlock. |
476 | | @c mysql_rwlock_wrlock is a drop-in replacement |
477 | | for @c pthread_rwlock_wrlock. |
478 | | */ |
479 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
480 | | #define mysql_rwlock_wrlock(RW) \ |
481 | | inline_mysql_rwlock_wrlock(RW, __FILE__, __LINE__) |
482 | | #else |
483 | | #define mysql_rwlock_wrlock(RW) \ |
484 | | inline_mysql_rwlock_wrlock(RW) |
485 | | #endif |
486 | | |
487 | | /** |
488 | | @def mysql_prlock_wrlock(RW) |
489 | | Instrumented rw_pr_wrlock. |
490 | | @c mysql_prlock_wrlock is a drop-in replacement |
491 | | for @c rw_pr_wrlock. |
492 | | */ |
493 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
494 | | #define mysql_prlock_wrlock(RW) \ |
495 | | inline_mysql_prlock_wrlock(RW, __FILE__, __LINE__) |
496 | | #else |
497 | | #define mysql_prlock_wrlock(RW) \ |
498 | | inline_mysql_prlock_wrlock(RW) |
499 | | #endif |
500 | | |
501 | | /** |
502 | | @def mysql_rwlock_tryrdlock(RW) |
503 | | Instrumented rwlock_tryrdlock. |
504 | | @c mysql_rwlock_tryrdlock is a drop-in replacement |
505 | | for @c pthread_rwlock_tryrdlock. |
506 | | */ |
507 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
508 | | #define mysql_rwlock_tryrdlock(RW) \ |
509 | | inline_mysql_rwlock_tryrdlock(RW, __FILE__, __LINE__) |
510 | | #else |
511 | | #define mysql_rwlock_tryrdlock(RW) \ |
512 | | inline_mysql_rwlock_tryrdlock(RW) |
513 | | #endif |
514 | | |
515 | | /** |
516 | | @def mysql_rwlock_trywrlock(RW) |
517 | | Instrumented rwlock_trywrlock. |
518 | | @c mysql_rwlock_trywrlock is a drop-in replacement |
519 | | for @c pthread_rwlock_trywrlock. |
520 | | */ |
521 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
522 | | #define mysql_rwlock_trywrlock(RW) \ |
523 | | inline_mysql_rwlock_trywrlock(RW, __FILE__, __LINE__) |
524 | | #else |
525 | | #define mysql_rwlock_trywrlock(RW) \ |
526 | | inline_mysql_rwlock_trywrlock(RW) |
527 | | #endif |
528 | | |
529 | | /** |
530 | | @def mysql_rwlock_unlock(RW) |
531 | | Instrumented rwlock_unlock. |
532 | | @c mysql_rwlock_unlock is a drop-in replacement |
533 | | for @c pthread_rwlock_unlock. |
534 | | */ |
535 | | #define mysql_rwlock_unlock(RW) inline_mysql_rwlock_unlock(RW) |
536 | | |
537 | | /** |
538 | | @def mysql_prlock_unlock(RW) |
539 | | Instrumented rw_pr_unlock. |
540 | | @c mysql_prlock_unlock is a drop-in replacement |
541 | | for @c rw_pr_unlock. |
542 | | */ |
543 | | #define mysql_prlock_unlock(RW) inline_mysql_prlock_unlock(RW) |
544 | | |
545 | | /** |
546 | | @def mysql_cond_register(P1, P2, P3) |
547 | | Cond registration. |
548 | | */ |
549 | | #define mysql_cond_register(P1, P2, P3) \ |
550 | 0 | inline_mysql_cond_register(P1, P2, P3) |
551 | | |
552 | | /** |
553 | | @def mysql_cond_init(K, C, A) |
554 | | Instrumented cond_init. |
555 | | @c mysql_cond_init is a replacement for @c pthread_cond_init. |
556 | | @param C The cond to initialize |
557 | | @param K The PSI_cond_key for this instrumented cond |
558 | | @param A Condition attributes |
559 | | */ |
560 | | #ifdef HAVE_PSI_COND_INTERFACE |
561 | 0 | #define mysql_cond_init(K, C, A) inline_mysql_cond_init(K, C, A) |
562 | | #else |
563 | | #define mysql_cond_init(K, C, A) inline_mysql_cond_init(C, A) |
564 | | #endif |
565 | | |
566 | | /** |
567 | | @def mysql_cond_destroy(C) |
568 | | Instrumented cond_destroy. |
569 | | @c mysql_cond_destroy is a drop-in replacement for @c pthread_cond_destroy. |
570 | | */ |
571 | 0 | #define mysql_cond_destroy(C) inline_mysql_cond_destroy(C) |
572 | | |
573 | | /** |
574 | | @def mysql_cond_wait(C) |
575 | | Instrumented cond_wait. |
576 | | @c mysql_cond_wait is a drop-in replacement for @c pthread_cond_wait. |
577 | | */ |
578 | | #if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) |
579 | | #define mysql_cond_wait(C, M) \ |
580 | | inline_mysql_cond_wait(C, M, __FILE__, __LINE__) |
581 | | #else |
582 | | #define mysql_cond_wait(C, M) \ |
583 | | inline_mysql_cond_wait(C, M) |
584 | | #endif |
585 | | |
586 | | /** |
587 | | @def mysql_cond_timedwait(C, M, W) |
588 | | Instrumented cond_timedwait. |
589 | | @c mysql_cond_timedwait is a drop-in replacement |
590 | | for @c pthread_cond_timedwait. |
591 | | */ |
592 | | #if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) |
593 | | #define mysql_cond_timedwait(C, M, W) \ |
594 | 0 | inline_mysql_cond_timedwait(C, M, W, __FILE__, __LINE__) |
595 | | #else |
596 | | #define mysql_cond_timedwait(C, M, W) \ |
597 | | inline_mysql_cond_timedwait(C, M, W) |
598 | | #endif |
599 | | |
600 | | /** |
601 | | @def mysql_cond_signal(C) |
602 | | Instrumented cond_signal. |
603 | | @c mysql_cond_signal is a drop-in replacement for @c pthread_cond_signal. |
604 | | */ |
605 | 0 | #define mysql_cond_signal(C) inline_mysql_cond_signal(C) |
606 | | |
607 | | /** |
608 | | @def mysql_cond_broadcast(C) |
609 | | Instrumented cond_broadcast. |
610 | | @c mysql_cond_broadcast is a drop-in replacement |
611 | | for @c pthread_cond_broadcast. |
612 | | */ |
613 | | #define mysql_cond_broadcast(C) inline_mysql_cond_broadcast(C) |
614 | | |
615 | | /** |
616 | | @def mysql_thread_register(P1, P2, P3) |
617 | | Thread registration. |
618 | | */ |
619 | | #define mysql_thread_register(P1, P2, P3) \ |
620 | 0 | inline_mysql_thread_register(P1, P2, P3) |
621 | | |
622 | | /** |
623 | | @def mysql_thread_create(K, P1, P2, P3, P4) |
624 | | Instrumented pthread_create. |
625 | | This function creates both the thread instrumentation and a thread. |
626 | | @c mysql_thread_create is a replacement for @c pthread_create. |
627 | | The parameter P4 (or, if it is NULL, P1) will be used as the |
628 | | instrumented thread "identity". |
629 | | Providing a P1 / P4 parameter with a different value for each call |
630 | | will on average improve performances, since this thread identity value |
631 | | is used internally to randomize access to data and prevent contention. |
632 | | This is optional, and the improvement is not guaranteed, only statistical. |
633 | | @param K The PSI_thread_key for this instrumented thread |
634 | | @param P1 pthread_create parameter 1 |
635 | | @param P2 pthread_create parameter 2 |
636 | | @param P3 pthread_create parameter 3 |
637 | | @param P4 pthread_create parameter 4 |
638 | | */ |
639 | | #ifdef HAVE_PSI_THREAD_INTERFACE |
640 | | #define mysql_thread_create(K, P1, P2, P3, P4) \ |
641 | | inline_mysql_thread_create(K, P1, P2, P3, P4) |
642 | | #else |
643 | | #define mysql_thread_create(K, P1, P2, P3, P4) \ |
644 | | pthread_create(P1, P2, P3, P4) |
645 | | #endif |
646 | | |
647 | | /** |
648 | | @def mysql_thread_set_psi_id(I) |
649 | | Set the thread identifier for the instrumentation. |
650 | | @param I The thread identifier |
651 | | */ |
652 | | #ifdef HAVE_PSI_THREAD_INTERFACE |
653 | | #define mysql_thread_set_psi_id(I) inline_mysql_thread_set_psi_id(I) |
654 | | #else |
655 | | #define mysql_thread_set_psi_id(I) do {} while (0) |
656 | | #endif |
657 | | |
658 | | /** |
659 | | @def mysql_thread_set_psi_THD(T) |
660 | | Set the thread sql session for the instrumentation. |
661 | | @param I The thread identifier |
662 | | */ |
663 | | #ifdef HAVE_PSI_THREAD_INTERFACE |
664 | | #define mysql_thread_set_psi_THD(T) inline_mysql_thread_set_psi_THD(T) |
665 | | #else |
666 | | #define mysql_thread_set_psi_THD(T) do {} while (0) |
667 | | #endif |
668 | | |
669 | | static inline void inline_mysql_mutex_register( |
670 | | #ifdef HAVE_PSI_MUTEX_INTERFACE |
671 | | const char *category, |
672 | | PSI_mutex_info *info, |
673 | | int count |
674 | | #else |
675 | | const char *category __attribute__ ((unused)), |
676 | | void *info __attribute__ ((unused)), |
677 | | int count __attribute__ ((unused)) |
678 | | #endif |
679 | | ) |
680 | 0 | { |
681 | 0 | #ifdef HAVE_PSI_MUTEX_INTERFACE |
682 | 0 | PSI_MUTEX_CALL(register_mutex)(category, info, count); |
683 | 0 | #endif |
684 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_mutex_register Unexecuted instantiation: my_malloc.c:inline_mysql_mutex_register Unexecuted instantiation: my_static.c:inline_mysql_mutex_register Unexecuted instantiation: my_thr_init.c:inline_mysql_mutex_register Unexecuted instantiation: thr_mutex.c:inline_mysql_mutex_register Unexecuted instantiation: thr_rwlock.c:inline_mysql_mutex_register Unexecuted instantiation: psi_noop.c:inline_mysql_mutex_register Unexecuted instantiation: my_error.c:inline_mysql_mutex_register Unexecuted instantiation: my_getsystime.c:inline_mysql_mutex_register Unexecuted instantiation: my_init.c:inline_mysql_mutex_register Unexecuted instantiation: my_mess.c:inline_mysql_mutex_register Unexecuted instantiation: my_once.c:inline_mysql_mutex_register Unexecuted instantiation: my_symlink.c:inline_mysql_mutex_register Unexecuted instantiation: my_sync.c:inline_mysql_mutex_register Unexecuted instantiation: charset.c:inline_mysql_mutex_register Unexecuted instantiation: errors.c:inline_mysql_mutex_register Unexecuted instantiation: hash.c:inline_mysql_mutex_register Unexecuted instantiation: mf_dirname.c:inline_mysql_mutex_register Unexecuted instantiation: mf_loadpath.c:inline_mysql_mutex_register Unexecuted instantiation: mf_pack.c:inline_mysql_mutex_register Unexecuted instantiation: my_div.c:inline_mysql_mutex_register Unexecuted instantiation: my_getwd.c:inline_mysql_mutex_register Unexecuted instantiation: my_lib.c:inline_mysql_mutex_register Unexecuted instantiation: my_open.c:inline_mysql_mutex_register Unexecuted instantiation: my_read.c:inline_mysql_mutex_register Unexecuted instantiation: array.c:inline_mysql_mutex_register Unexecuted instantiation: charset-def.c:inline_mysql_mutex_register Unexecuted instantiation: mf_qsort.c:inline_mysql_mutex_register Unexecuted instantiation: my_alloc.c:inline_mysql_mutex_register |
685 | | |
686 | | static inline int inline_mysql_mutex_init( |
687 | | #ifdef HAVE_PSI_MUTEX_INTERFACE |
688 | | PSI_mutex_key key, |
689 | | #endif |
690 | | mysql_mutex_t *that, |
691 | | const pthread_mutexattr_t *attr |
692 | | #ifdef SAFE_MUTEX |
693 | | , const char *src_name, const char *src_file, uint src_line |
694 | | #endif |
695 | | ) |
696 | 0 | { |
697 | 0 | #ifdef HAVE_PSI_MUTEX_INTERFACE |
698 | 0 | that->m_psi= PSI_MUTEX_CALL(init_mutex)(key, &that->m_mutex); |
699 | | #else |
700 | | that->m_psi= NULL; |
701 | | #endif |
702 | | #ifdef SAFE_MUTEX |
703 | | return safe_mutex_init(&that->m_mutex, attr, src_name, src_file, src_line); |
704 | | #else |
705 | 0 | return pthread_mutex_init(&that->m_mutex, attr); |
706 | 0 | #endif |
707 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_mutex_init Unexecuted instantiation: my_malloc.c:inline_mysql_mutex_init Unexecuted instantiation: my_static.c:inline_mysql_mutex_init Unexecuted instantiation: my_thr_init.c:inline_mysql_mutex_init Unexecuted instantiation: thr_mutex.c:inline_mysql_mutex_init Unexecuted instantiation: thr_rwlock.c:inline_mysql_mutex_init Unexecuted instantiation: psi_noop.c:inline_mysql_mutex_init Unexecuted instantiation: my_error.c:inline_mysql_mutex_init Unexecuted instantiation: my_getsystime.c:inline_mysql_mutex_init Unexecuted instantiation: my_init.c:inline_mysql_mutex_init Unexecuted instantiation: my_mess.c:inline_mysql_mutex_init Unexecuted instantiation: my_once.c:inline_mysql_mutex_init Unexecuted instantiation: my_symlink.c:inline_mysql_mutex_init Unexecuted instantiation: my_sync.c:inline_mysql_mutex_init Unexecuted instantiation: charset.c:inline_mysql_mutex_init Unexecuted instantiation: errors.c:inline_mysql_mutex_init Unexecuted instantiation: hash.c:inline_mysql_mutex_init Unexecuted instantiation: mf_dirname.c:inline_mysql_mutex_init Unexecuted instantiation: mf_loadpath.c:inline_mysql_mutex_init Unexecuted instantiation: mf_pack.c:inline_mysql_mutex_init Unexecuted instantiation: my_div.c:inline_mysql_mutex_init Unexecuted instantiation: my_getwd.c:inline_mysql_mutex_init Unexecuted instantiation: my_lib.c:inline_mysql_mutex_init Unexecuted instantiation: my_open.c:inline_mysql_mutex_init Unexecuted instantiation: my_read.c:inline_mysql_mutex_init Unexecuted instantiation: array.c:inline_mysql_mutex_init Unexecuted instantiation: charset-def.c:inline_mysql_mutex_init Unexecuted instantiation: mf_qsort.c:inline_mysql_mutex_init Unexecuted instantiation: my_alloc.c:inline_mysql_mutex_init |
708 | | |
709 | | static inline int inline_mysql_mutex_destroy( |
710 | | mysql_mutex_t *that |
711 | | #ifdef SAFE_MUTEX |
712 | | , const char *src_file, uint src_line |
713 | | #endif |
714 | | ) |
715 | 0 | { |
716 | 0 | #ifdef HAVE_PSI_MUTEX_INTERFACE |
717 | 0 | if (that->m_psi != NULL) |
718 | 0 | { |
719 | 0 | PSI_MUTEX_CALL(destroy_mutex)(that->m_psi); |
720 | 0 | that->m_psi= NULL; |
721 | 0 | } |
722 | 0 | #endif |
723 | | #ifdef SAFE_MUTEX |
724 | | return safe_mutex_destroy(&that->m_mutex, src_file, src_line); |
725 | | #else |
726 | 0 | return pthread_mutex_destroy(&that->m_mutex); |
727 | 0 | #endif |
728 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_malloc.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_static.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_thr_init.c:inline_mysql_mutex_destroy Unexecuted instantiation: thr_mutex.c:inline_mysql_mutex_destroy Unexecuted instantiation: thr_rwlock.c:inline_mysql_mutex_destroy Unexecuted instantiation: psi_noop.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_error.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_getsystime.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_init.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_mess.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_once.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_symlink.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_sync.c:inline_mysql_mutex_destroy Unexecuted instantiation: charset.c:inline_mysql_mutex_destroy Unexecuted instantiation: errors.c:inline_mysql_mutex_destroy Unexecuted instantiation: hash.c:inline_mysql_mutex_destroy Unexecuted instantiation: mf_dirname.c:inline_mysql_mutex_destroy Unexecuted instantiation: mf_loadpath.c:inline_mysql_mutex_destroy Unexecuted instantiation: mf_pack.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_div.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_getwd.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_lib.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_open.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_read.c:inline_mysql_mutex_destroy Unexecuted instantiation: array.c:inline_mysql_mutex_destroy Unexecuted instantiation: charset-def.c:inline_mysql_mutex_destroy Unexecuted instantiation: mf_qsort.c:inline_mysql_mutex_destroy Unexecuted instantiation: my_alloc.c:inline_mysql_mutex_destroy |
729 | | |
730 | | #ifdef HAVE_PSI_MUTEX_INTERFACE |
731 | | ATTRIBUTE_COLD int psi_mutex_lock(mysql_mutex_t *that, |
732 | | const char *file, uint line); |
733 | | ATTRIBUTE_COLD int psi_mutex_trylock(mysql_mutex_t *that, |
734 | | const char *file, uint line); |
735 | | #endif |
736 | | |
737 | | static inline int inline_mysql_mutex_lock( |
738 | | mysql_mutex_t *that |
739 | | #if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) |
740 | | , const char *src_file, uint src_line |
741 | | #endif |
742 | | ) |
743 | 0 | { |
744 | 0 | #ifdef HAVE_PSI_MUTEX_INTERFACE |
745 | 0 | if (psi_likely(that->m_psi != NULL)) |
746 | 0 | return psi_mutex_lock(that, src_file, src_line); |
747 | 0 | #endif |
748 | | /* Non instrumented code */ |
749 | | #ifdef SAFE_MUTEX |
750 | | return safe_mutex_lock(&that->m_mutex, FALSE, src_file, src_line); |
751 | | #else |
752 | 0 | return pthread_mutex_lock(&that->m_mutex); |
753 | 0 | #endif |
754 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_mutex_lock Unexecuted instantiation: my_malloc.c:inline_mysql_mutex_lock Unexecuted instantiation: my_static.c:inline_mysql_mutex_lock Unexecuted instantiation: my_thr_init.c:inline_mysql_mutex_lock Unexecuted instantiation: thr_mutex.c:inline_mysql_mutex_lock Unexecuted instantiation: thr_rwlock.c:inline_mysql_mutex_lock Unexecuted instantiation: psi_noop.c:inline_mysql_mutex_lock Unexecuted instantiation: my_error.c:inline_mysql_mutex_lock Unexecuted instantiation: my_getsystime.c:inline_mysql_mutex_lock Unexecuted instantiation: my_init.c:inline_mysql_mutex_lock Unexecuted instantiation: my_mess.c:inline_mysql_mutex_lock Unexecuted instantiation: my_once.c:inline_mysql_mutex_lock Unexecuted instantiation: my_symlink.c:inline_mysql_mutex_lock Unexecuted instantiation: my_sync.c:inline_mysql_mutex_lock Unexecuted instantiation: charset.c:inline_mysql_mutex_lock Unexecuted instantiation: errors.c:inline_mysql_mutex_lock Unexecuted instantiation: hash.c:inline_mysql_mutex_lock Unexecuted instantiation: mf_dirname.c:inline_mysql_mutex_lock Unexecuted instantiation: mf_loadpath.c:inline_mysql_mutex_lock Unexecuted instantiation: mf_pack.c:inline_mysql_mutex_lock Unexecuted instantiation: my_div.c:inline_mysql_mutex_lock Unexecuted instantiation: my_getwd.c:inline_mysql_mutex_lock Unexecuted instantiation: my_lib.c:inline_mysql_mutex_lock Unexecuted instantiation: my_open.c:inline_mysql_mutex_lock Unexecuted instantiation: my_read.c:inline_mysql_mutex_lock Unexecuted instantiation: array.c:inline_mysql_mutex_lock Unexecuted instantiation: charset-def.c:inline_mysql_mutex_lock Unexecuted instantiation: mf_qsort.c:inline_mysql_mutex_lock Unexecuted instantiation: my_alloc.c:inline_mysql_mutex_lock |
755 | | |
756 | | static inline int inline_mysql_mutex_trylock( |
757 | | mysql_mutex_t *that |
758 | | #if defined(SAFE_MUTEX) || defined (HAVE_PSI_MUTEX_INTERFACE) |
759 | | , const char *src_file, uint src_line |
760 | | #endif |
761 | | ) |
762 | 0 | { |
763 | 0 | #ifdef HAVE_PSI_MUTEX_INTERFACE |
764 | 0 | if (psi_likely(that->m_psi != NULL)) |
765 | 0 | return psi_mutex_trylock(that, src_file, src_line); |
766 | 0 | #endif |
767 | 0 | /* Non instrumented code */ |
768 | 0 | #ifdef SAFE_MUTEX |
769 | 0 | return safe_mutex_lock(&that->m_mutex, TRUE, src_file, src_line); |
770 | 0 | #else |
771 | 0 | return pthread_mutex_trylock(&that->m_mutex); |
772 | 0 | #endif |
773 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_malloc.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_static.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_thr_init.c:inline_mysql_mutex_trylock Unexecuted instantiation: thr_mutex.c:inline_mysql_mutex_trylock Unexecuted instantiation: thr_rwlock.c:inline_mysql_mutex_trylock Unexecuted instantiation: psi_noop.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_error.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_getsystime.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_init.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_mess.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_once.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_symlink.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_sync.c:inline_mysql_mutex_trylock Unexecuted instantiation: charset.c:inline_mysql_mutex_trylock Unexecuted instantiation: errors.c:inline_mysql_mutex_trylock Unexecuted instantiation: hash.c:inline_mysql_mutex_trylock Unexecuted instantiation: mf_dirname.c:inline_mysql_mutex_trylock Unexecuted instantiation: mf_loadpath.c:inline_mysql_mutex_trylock Unexecuted instantiation: mf_pack.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_div.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_getwd.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_lib.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_open.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_read.c:inline_mysql_mutex_trylock Unexecuted instantiation: array.c:inline_mysql_mutex_trylock Unexecuted instantiation: charset-def.c:inline_mysql_mutex_trylock Unexecuted instantiation: mf_qsort.c:inline_mysql_mutex_trylock Unexecuted instantiation: my_alloc.c:inline_mysql_mutex_trylock |
774 | | |
775 | | static inline int inline_mysql_mutex_unlock( |
776 | | mysql_mutex_t *that |
777 | | #ifdef SAFE_MUTEX |
778 | | , const char *src_file, uint src_line |
779 | | #endif |
780 | | ) |
781 | 0 | { |
782 | 0 | int result; |
783 | |
|
784 | 0 | #ifdef HAVE_PSI_MUTEX_INTERFACE |
785 | 0 | if (psi_likely(that->m_psi != NULL)) |
786 | 0 | PSI_MUTEX_CALL(unlock_mutex)(that->m_psi); |
787 | 0 | #endif |
788 | |
|
789 | | #ifdef SAFE_MUTEX |
790 | | result= safe_mutex_unlock(&that->m_mutex, src_file, src_line); |
791 | | #else |
792 | 0 | result= pthread_mutex_unlock(&that->m_mutex); |
793 | 0 | #endif |
794 | |
|
795 | 0 | return result; |
796 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_malloc.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_static.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_thr_init.c:inline_mysql_mutex_unlock Unexecuted instantiation: thr_mutex.c:inline_mysql_mutex_unlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_mutex_unlock Unexecuted instantiation: psi_noop.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_error.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_getsystime.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_init.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_mess.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_once.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_symlink.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_sync.c:inline_mysql_mutex_unlock Unexecuted instantiation: charset.c:inline_mysql_mutex_unlock Unexecuted instantiation: errors.c:inline_mysql_mutex_unlock Unexecuted instantiation: hash.c:inline_mysql_mutex_unlock Unexecuted instantiation: mf_dirname.c:inline_mysql_mutex_unlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_mutex_unlock Unexecuted instantiation: mf_pack.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_div.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_getwd.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_lib.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_open.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_read.c:inline_mysql_mutex_unlock Unexecuted instantiation: array.c:inline_mysql_mutex_unlock Unexecuted instantiation: charset-def.c:inline_mysql_mutex_unlock Unexecuted instantiation: mf_qsort.c:inline_mysql_mutex_unlock Unexecuted instantiation: my_alloc.c:inline_mysql_mutex_unlock |
797 | | |
798 | | static inline void inline_mysql_rwlock_register( |
799 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
800 | | const char *category, |
801 | | PSI_rwlock_info *info, |
802 | | int count |
803 | | #else |
804 | | const char *category __attribute__ ((unused)), |
805 | | void *info __attribute__ ((unused)), |
806 | | int count __attribute__ ((unused)) |
807 | | #endif |
808 | | ) |
809 | 0 | { |
810 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
811 | 0 | PSI_RWLOCK_CALL(register_rwlock)(category, info, count); |
812 | 0 | #endif |
813 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_register Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_register Unexecuted instantiation: my_static.c:inline_mysql_rwlock_register Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_register Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_register Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_register Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_register Unexecuted instantiation: my_error.c:inline_mysql_rwlock_register Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_register Unexecuted instantiation: my_init.c:inline_mysql_rwlock_register Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_register Unexecuted instantiation: my_once.c:inline_mysql_rwlock_register Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_register Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_register Unexecuted instantiation: charset.c:inline_mysql_rwlock_register Unexecuted instantiation: errors.c:inline_mysql_rwlock_register Unexecuted instantiation: hash.c:inline_mysql_rwlock_register Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_register Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_register Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_register Unexecuted instantiation: my_div.c:inline_mysql_rwlock_register Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_register Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_register Unexecuted instantiation: my_open.c:inline_mysql_rwlock_register Unexecuted instantiation: my_read.c:inline_mysql_rwlock_register Unexecuted instantiation: array.c:inline_mysql_rwlock_register Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_register Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_register Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_register |
814 | | |
815 | | static inline int inline_mysql_rwlock_init( |
816 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
817 | | PSI_rwlock_key key, |
818 | | #endif |
819 | | mysql_rwlock_t *that) |
820 | 0 | { |
821 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
822 | 0 | that->m_psi= PSI_RWLOCK_CALL(init_rwlock)(key, &that->m_rwlock); |
823 | 0 | #else |
824 | 0 | that->m_psi= NULL; |
825 | 0 | #endif |
826 | 0 | /* |
827 | 0 | pthread_rwlockattr_t is not used in MySQL. |
828 | 0 | */ |
829 | 0 | return my_rwlock_init(&that->m_rwlock, NULL); |
830 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_init Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_init Unexecuted instantiation: my_static.c:inline_mysql_rwlock_init Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_init Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_init Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_init Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_init Unexecuted instantiation: my_error.c:inline_mysql_rwlock_init Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_init Unexecuted instantiation: my_init.c:inline_mysql_rwlock_init Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_init Unexecuted instantiation: my_once.c:inline_mysql_rwlock_init Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_init Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_init Unexecuted instantiation: charset.c:inline_mysql_rwlock_init Unexecuted instantiation: errors.c:inline_mysql_rwlock_init Unexecuted instantiation: hash.c:inline_mysql_rwlock_init Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_init Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_init Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_init Unexecuted instantiation: my_div.c:inline_mysql_rwlock_init Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_init Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_init Unexecuted instantiation: my_open.c:inline_mysql_rwlock_init Unexecuted instantiation: my_read.c:inline_mysql_rwlock_init Unexecuted instantiation: array.c:inline_mysql_rwlock_init Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_init Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_init Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_init |
831 | | |
832 | | #ifndef DISABLE_MYSQL_PRLOCK_H |
833 | | static inline int inline_mysql_prlock_init( |
834 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
835 | | PSI_rwlock_key key, |
836 | | #endif |
837 | | mysql_prlock_t *that) |
838 | 0 | { |
839 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
840 | 0 | that->m_psi= PSI_RWLOCK_CALL(init_rwlock)(key, &that->m_prlock); |
841 | 0 | #else |
842 | 0 | that->m_psi= NULL; |
843 | 0 | #endif |
844 | 0 | return rw_pr_init(&that->m_prlock); |
845 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_prlock_init Unexecuted instantiation: my_malloc.c:inline_mysql_prlock_init Unexecuted instantiation: my_static.c:inline_mysql_prlock_init Unexecuted instantiation: my_thr_init.c:inline_mysql_prlock_init Unexecuted instantiation: thr_mutex.c:inline_mysql_prlock_init Unexecuted instantiation: thr_rwlock.c:inline_mysql_prlock_init Unexecuted instantiation: psi_noop.c:inline_mysql_prlock_init Unexecuted instantiation: my_error.c:inline_mysql_prlock_init Unexecuted instantiation: my_getsystime.c:inline_mysql_prlock_init Unexecuted instantiation: my_init.c:inline_mysql_prlock_init Unexecuted instantiation: my_mess.c:inline_mysql_prlock_init Unexecuted instantiation: my_once.c:inline_mysql_prlock_init Unexecuted instantiation: my_symlink.c:inline_mysql_prlock_init Unexecuted instantiation: my_sync.c:inline_mysql_prlock_init Unexecuted instantiation: charset.c:inline_mysql_prlock_init Unexecuted instantiation: errors.c:inline_mysql_prlock_init Unexecuted instantiation: hash.c:inline_mysql_prlock_init Unexecuted instantiation: mf_dirname.c:inline_mysql_prlock_init Unexecuted instantiation: mf_loadpath.c:inline_mysql_prlock_init Unexecuted instantiation: mf_pack.c:inline_mysql_prlock_init Unexecuted instantiation: my_div.c:inline_mysql_prlock_init Unexecuted instantiation: my_getwd.c:inline_mysql_prlock_init Unexecuted instantiation: my_lib.c:inline_mysql_prlock_init Unexecuted instantiation: my_open.c:inline_mysql_prlock_init Unexecuted instantiation: my_read.c:inline_mysql_prlock_init Unexecuted instantiation: array.c:inline_mysql_prlock_init Unexecuted instantiation: charset-def.c:inline_mysql_prlock_init Unexecuted instantiation: mf_qsort.c:inline_mysql_prlock_init Unexecuted instantiation: my_alloc.c:inline_mysql_prlock_init |
846 | | #endif |
847 | | |
848 | | static inline int inline_mysql_rwlock_destroy( |
849 | | mysql_rwlock_t *that) |
850 | 0 | { |
851 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
852 | 0 | if (psi_likely(that->m_psi != NULL)) |
853 | 0 | { |
854 | 0 | PSI_RWLOCK_CALL(destroy_rwlock)(that->m_psi); |
855 | 0 | that->m_psi= NULL; |
856 | 0 | } |
857 | 0 | #endif |
858 | 0 | return rwlock_destroy(&that->m_rwlock); |
859 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_static.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_destroy Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_destroy Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_destroy Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_error.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_init.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_once.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_destroy Unexecuted instantiation: charset.c:inline_mysql_rwlock_destroy Unexecuted instantiation: errors.c:inline_mysql_rwlock_destroy Unexecuted instantiation: hash.c:inline_mysql_rwlock_destroy Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_destroy Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_destroy Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_div.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_open.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_read.c:inline_mysql_rwlock_destroy Unexecuted instantiation: array.c:inline_mysql_rwlock_destroy Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_destroy Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_destroy Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_destroy |
860 | | |
861 | | #ifndef DISABLE_MYSQL_PRLOCK_H |
862 | | static inline int inline_mysql_prlock_destroy( |
863 | | mysql_prlock_t *that) |
864 | 0 | { |
865 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
866 | 0 | if (psi_likely(that->m_psi != NULL)) |
867 | 0 | { |
868 | 0 | PSI_RWLOCK_CALL(destroy_rwlock)(that->m_psi); |
869 | 0 | that->m_psi= NULL; |
870 | 0 | } |
871 | 0 | #endif |
872 | 0 | return rw_pr_destroy(&that->m_prlock); |
873 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_malloc.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_static.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_thr_init.c:inline_mysql_prlock_destroy Unexecuted instantiation: thr_mutex.c:inline_mysql_prlock_destroy Unexecuted instantiation: thr_rwlock.c:inline_mysql_prlock_destroy Unexecuted instantiation: psi_noop.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_error.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_getsystime.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_init.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_mess.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_once.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_symlink.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_sync.c:inline_mysql_prlock_destroy Unexecuted instantiation: charset.c:inline_mysql_prlock_destroy Unexecuted instantiation: errors.c:inline_mysql_prlock_destroy Unexecuted instantiation: hash.c:inline_mysql_prlock_destroy Unexecuted instantiation: mf_dirname.c:inline_mysql_prlock_destroy Unexecuted instantiation: mf_loadpath.c:inline_mysql_prlock_destroy Unexecuted instantiation: mf_pack.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_div.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_getwd.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_lib.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_open.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_read.c:inline_mysql_prlock_destroy Unexecuted instantiation: array.c:inline_mysql_prlock_destroy Unexecuted instantiation: charset-def.c:inline_mysql_prlock_destroy Unexecuted instantiation: mf_qsort.c:inline_mysql_prlock_destroy Unexecuted instantiation: my_alloc.c:inline_mysql_prlock_destroy |
874 | | #endif |
875 | | |
876 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
877 | | ATTRIBUTE_COLD |
878 | | int psi_rwlock_rdlock(mysql_rwlock_t *that, const char *file, uint line); |
879 | | ATTRIBUTE_COLD |
880 | | int psi_rwlock_tryrdlock(mysql_rwlock_t *that, const char *file, uint line); |
881 | | ATTRIBUTE_COLD |
882 | | int psi_rwlock_wrlock(mysql_rwlock_t *that, const char *file, uint line); |
883 | | ATTRIBUTE_COLD |
884 | | int psi_rwlock_trywrlock(mysql_rwlock_t *that, const char *file, uint line); |
885 | | # ifndef DISABLE_MYSQL_PRLOCK_H |
886 | | ATTRIBUTE_COLD |
887 | | int psi_prlock_rdlock(mysql_prlock_t *that, const char *file, uint line); |
888 | | ATTRIBUTE_COLD |
889 | | int psi_prlock_wrlock(mysql_prlock_t *that, const char *file, uint line); |
890 | | # endif |
891 | | #endif |
892 | | |
893 | | static inline int inline_mysql_rwlock_rdlock( |
894 | | mysql_rwlock_t *that |
895 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
896 | | , const char *src_file, uint src_line |
897 | | #endif |
898 | | ) |
899 | 0 | { |
900 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
901 | 0 | if (psi_likely(that->m_psi != NULL)) |
902 | 0 | return psi_rwlock_rdlock(that, src_file, src_line); |
903 | 0 | #endif |
904 | 0 | return rw_rdlock(&that->m_rwlock); |
905 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_static.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_error.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_init.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_once.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: charset.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: errors.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: hash.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_div.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_open.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_read.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: array.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_rdlock Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_rdlock |
906 | | |
907 | | #ifndef DISABLE_MYSQL_PRLOCK_H |
908 | | static inline int inline_mysql_prlock_rdlock( |
909 | | mysql_prlock_t *that |
910 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
911 | | , const char *src_file, uint src_line |
912 | | #endif |
913 | | ) |
914 | 0 | { |
915 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
916 | 0 | if (psi_likely(that->m_psi != NULL)) |
917 | 0 | return psi_prlock_rdlock(that, src_file, src_line); |
918 | 0 | #endif |
919 | 0 | return rw_pr_rdlock(&that->m_prlock); |
920 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_malloc.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_static.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_thr_init.c:inline_mysql_prlock_rdlock Unexecuted instantiation: thr_mutex.c:inline_mysql_prlock_rdlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_prlock_rdlock Unexecuted instantiation: psi_noop.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_error.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_getsystime.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_init.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_mess.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_once.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_symlink.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_sync.c:inline_mysql_prlock_rdlock Unexecuted instantiation: charset.c:inline_mysql_prlock_rdlock Unexecuted instantiation: errors.c:inline_mysql_prlock_rdlock Unexecuted instantiation: hash.c:inline_mysql_prlock_rdlock Unexecuted instantiation: mf_dirname.c:inline_mysql_prlock_rdlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_prlock_rdlock Unexecuted instantiation: mf_pack.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_div.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_getwd.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_lib.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_open.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_read.c:inline_mysql_prlock_rdlock Unexecuted instantiation: array.c:inline_mysql_prlock_rdlock Unexecuted instantiation: charset-def.c:inline_mysql_prlock_rdlock Unexecuted instantiation: mf_qsort.c:inline_mysql_prlock_rdlock Unexecuted instantiation: my_alloc.c:inline_mysql_prlock_rdlock |
921 | | #endif |
922 | | |
923 | | static inline int inline_mysql_rwlock_wrlock( |
924 | | mysql_rwlock_t *that |
925 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
926 | | , const char *src_file, uint src_line |
927 | | #endif |
928 | | ) |
929 | 0 | { |
930 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
931 | 0 | if (psi_likely(that->m_psi != NULL)) |
932 | 0 | return psi_rwlock_wrlock(that, src_file, src_line); |
933 | 0 | #endif |
934 | 0 | return rw_wrlock(&that->m_rwlock); |
935 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_static.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_error.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_init.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_once.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: charset.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: errors.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: hash.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_div.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_open.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_read.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: array.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_wrlock Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_wrlock |
936 | | |
937 | | #ifndef DISABLE_MYSQL_PRLOCK_H |
938 | | static inline int inline_mysql_prlock_wrlock( |
939 | | mysql_prlock_t *that |
940 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
941 | | , const char *src_file, uint src_line |
942 | | #endif |
943 | | ) |
944 | 0 | { |
945 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
946 | 0 | if (psi_likely(that->m_psi != NULL)) |
947 | 0 | return psi_prlock_wrlock(that, src_file, src_line); |
948 | 0 | #endif |
949 | 0 | return rw_pr_wrlock(&that->m_prlock); |
950 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_malloc.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_static.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_thr_init.c:inline_mysql_prlock_wrlock Unexecuted instantiation: thr_mutex.c:inline_mysql_prlock_wrlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_prlock_wrlock Unexecuted instantiation: psi_noop.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_error.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_getsystime.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_init.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_mess.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_once.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_symlink.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_sync.c:inline_mysql_prlock_wrlock Unexecuted instantiation: charset.c:inline_mysql_prlock_wrlock Unexecuted instantiation: errors.c:inline_mysql_prlock_wrlock Unexecuted instantiation: hash.c:inline_mysql_prlock_wrlock Unexecuted instantiation: mf_dirname.c:inline_mysql_prlock_wrlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_prlock_wrlock Unexecuted instantiation: mf_pack.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_div.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_getwd.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_lib.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_open.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_read.c:inline_mysql_prlock_wrlock Unexecuted instantiation: array.c:inline_mysql_prlock_wrlock Unexecuted instantiation: charset-def.c:inline_mysql_prlock_wrlock Unexecuted instantiation: mf_qsort.c:inline_mysql_prlock_wrlock Unexecuted instantiation: my_alloc.c:inline_mysql_prlock_wrlock |
951 | | #endif |
952 | | |
953 | | static inline int inline_mysql_rwlock_tryrdlock( |
954 | | mysql_rwlock_t *that |
955 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
956 | | , const char *src_file, uint src_line |
957 | | #endif |
958 | | ) |
959 | 0 | { |
960 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
961 | 0 | if (psi_likely(that->m_psi != NULL)) |
962 | 0 | return psi_rwlock_tryrdlock(that, src_file, src_line); |
963 | 0 | #endif |
964 | 0 | return rw_tryrdlock(&that->m_rwlock); |
965 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_static.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_error.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_init.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_once.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: charset.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: errors.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: hash.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_div.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_open.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_read.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: array.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_tryrdlock Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_tryrdlock |
966 | | |
967 | | static inline int inline_mysql_rwlock_trywrlock( |
968 | | mysql_rwlock_t *that |
969 | | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
970 | | , const char *src_file, uint src_line |
971 | | #endif |
972 | | ) |
973 | 0 | { |
974 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
975 | 0 | if (psi_likely(that->m_psi != NULL)) |
976 | 0 | return psi_rwlock_trywrlock(that, src_file, src_line); |
977 | 0 | #endif |
978 | 0 | return rw_trywrlock(&that->m_rwlock); |
979 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_static.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_error.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_init.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_once.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: charset.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: errors.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: hash.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_div.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_open.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_read.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: array.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_trywrlock Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_trywrlock |
980 | | |
981 | | static inline int inline_mysql_rwlock_unlock( |
982 | | mysql_rwlock_t *that) |
983 | 0 | { |
984 | 0 | int result; |
985 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
986 | 0 | if (psi_likely(that->m_psi != NULL)) |
987 | 0 | PSI_RWLOCK_CALL(unlock_rwlock)(that->m_psi); |
988 | 0 | #endif |
989 | 0 | result= rw_unlock(&that->m_rwlock); |
990 | 0 | return result; |
991 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_malloc.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_static.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_thr_init.c:inline_mysql_rwlock_unlock Unexecuted instantiation: thr_mutex.c:inline_mysql_rwlock_unlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_rwlock_unlock Unexecuted instantiation: psi_noop.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_error.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_getsystime.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_init.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_mess.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_once.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_symlink.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_sync.c:inline_mysql_rwlock_unlock Unexecuted instantiation: charset.c:inline_mysql_rwlock_unlock Unexecuted instantiation: errors.c:inline_mysql_rwlock_unlock Unexecuted instantiation: hash.c:inline_mysql_rwlock_unlock Unexecuted instantiation: mf_dirname.c:inline_mysql_rwlock_unlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_rwlock_unlock Unexecuted instantiation: mf_pack.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_div.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_getwd.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_lib.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_open.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_read.c:inline_mysql_rwlock_unlock Unexecuted instantiation: array.c:inline_mysql_rwlock_unlock Unexecuted instantiation: charset-def.c:inline_mysql_rwlock_unlock Unexecuted instantiation: mf_qsort.c:inline_mysql_rwlock_unlock Unexecuted instantiation: my_alloc.c:inline_mysql_rwlock_unlock |
992 | | |
993 | | #ifndef DISABLE_MYSQL_PRLOCK_H |
994 | | static inline int inline_mysql_prlock_unlock( |
995 | | mysql_prlock_t *that) |
996 | 0 | { |
997 | 0 | int result; |
998 | 0 | #ifdef HAVE_PSI_RWLOCK_INTERFACE |
999 | 0 | if (psi_likely(that->m_psi != NULL)) |
1000 | 0 | PSI_RWLOCK_CALL(unlock_rwlock)(that->m_psi); |
1001 | 0 | #endif |
1002 | 0 | result= rw_pr_unlock(&that->m_prlock); |
1003 | 0 | return result; |
1004 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_malloc.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_static.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_thr_init.c:inline_mysql_prlock_unlock Unexecuted instantiation: thr_mutex.c:inline_mysql_prlock_unlock Unexecuted instantiation: thr_rwlock.c:inline_mysql_prlock_unlock Unexecuted instantiation: psi_noop.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_error.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_getsystime.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_init.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_mess.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_once.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_symlink.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_sync.c:inline_mysql_prlock_unlock Unexecuted instantiation: charset.c:inline_mysql_prlock_unlock Unexecuted instantiation: errors.c:inline_mysql_prlock_unlock Unexecuted instantiation: hash.c:inline_mysql_prlock_unlock Unexecuted instantiation: mf_dirname.c:inline_mysql_prlock_unlock Unexecuted instantiation: mf_loadpath.c:inline_mysql_prlock_unlock Unexecuted instantiation: mf_pack.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_div.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_getwd.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_lib.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_open.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_read.c:inline_mysql_prlock_unlock Unexecuted instantiation: array.c:inline_mysql_prlock_unlock Unexecuted instantiation: charset-def.c:inline_mysql_prlock_unlock Unexecuted instantiation: mf_qsort.c:inline_mysql_prlock_unlock Unexecuted instantiation: my_alloc.c:inline_mysql_prlock_unlock |
1005 | | #endif |
1006 | | |
1007 | | static inline void inline_mysql_cond_register( |
1008 | | #ifdef HAVE_PSI_COND_INTERFACE |
1009 | | const char *category, |
1010 | | PSI_cond_info *info, |
1011 | | int count |
1012 | | #else |
1013 | | const char *category __attribute__ ((unused)), |
1014 | | void *info __attribute__ ((unused)), |
1015 | | int count __attribute__ ((unused)) |
1016 | | #endif |
1017 | | ) |
1018 | 0 | { |
1019 | 0 | #ifdef HAVE_PSI_COND_INTERFACE |
1020 | 0 | PSI_COND_CALL(register_cond)(category, info, count); |
1021 | 0 | #endif |
1022 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_cond_register Unexecuted instantiation: my_malloc.c:inline_mysql_cond_register Unexecuted instantiation: my_static.c:inline_mysql_cond_register Unexecuted instantiation: my_thr_init.c:inline_mysql_cond_register Unexecuted instantiation: thr_mutex.c:inline_mysql_cond_register Unexecuted instantiation: thr_rwlock.c:inline_mysql_cond_register Unexecuted instantiation: psi_noop.c:inline_mysql_cond_register Unexecuted instantiation: my_error.c:inline_mysql_cond_register Unexecuted instantiation: my_getsystime.c:inline_mysql_cond_register Unexecuted instantiation: my_init.c:inline_mysql_cond_register Unexecuted instantiation: my_mess.c:inline_mysql_cond_register Unexecuted instantiation: my_once.c:inline_mysql_cond_register Unexecuted instantiation: my_symlink.c:inline_mysql_cond_register Unexecuted instantiation: my_sync.c:inline_mysql_cond_register Unexecuted instantiation: charset.c:inline_mysql_cond_register Unexecuted instantiation: errors.c:inline_mysql_cond_register Unexecuted instantiation: hash.c:inline_mysql_cond_register Unexecuted instantiation: mf_dirname.c:inline_mysql_cond_register Unexecuted instantiation: mf_loadpath.c:inline_mysql_cond_register Unexecuted instantiation: mf_pack.c:inline_mysql_cond_register Unexecuted instantiation: my_div.c:inline_mysql_cond_register Unexecuted instantiation: my_getwd.c:inline_mysql_cond_register Unexecuted instantiation: my_lib.c:inline_mysql_cond_register Unexecuted instantiation: my_open.c:inline_mysql_cond_register Unexecuted instantiation: my_read.c:inline_mysql_cond_register Unexecuted instantiation: array.c:inline_mysql_cond_register Unexecuted instantiation: charset-def.c:inline_mysql_cond_register Unexecuted instantiation: mf_qsort.c:inline_mysql_cond_register Unexecuted instantiation: my_alloc.c:inline_mysql_cond_register |
1023 | | |
1024 | | static inline int inline_mysql_cond_init( |
1025 | | #ifdef HAVE_PSI_COND_INTERFACE |
1026 | | PSI_cond_key key, |
1027 | | #endif |
1028 | | mysql_cond_t *that, |
1029 | | const pthread_condattr_t *attr) |
1030 | 0 | { |
1031 | 0 | #ifdef HAVE_PSI_COND_INTERFACE |
1032 | 0 | that->m_psi= PSI_COND_CALL(init_cond)(key, &that->m_cond); |
1033 | | #else |
1034 | | that->m_psi= NULL; |
1035 | | #endif |
1036 | 0 | return pthread_cond_init(&that->m_cond, attr); |
1037 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_cond_init Unexecuted instantiation: my_malloc.c:inline_mysql_cond_init Unexecuted instantiation: my_static.c:inline_mysql_cond_init Unexecuted instantiation: my_thr_init.c:inline_mysql_cond_init Unexecuted instantiation: thr_mutex.c:inline_mysql_cond_init Unexecuted instantiation: thr_rwlock.c:inline_mysql_cond_init Unexecuted instantiation: psi_noop.c:inline_mysql_cond_init Unexecuted instantiation: my_error.c:inline_mysql_cond_init Unexecuted instantiation: my_getsystime.c:inline_mysql_cond_init Unexecuted instantiation: my_init.c:inline_mysql_cond_init Unexecuted instantiation: my_mess.c:inline_mysql_cond_init Unexecuted instantiation: my_once.c:inline_mysql_cond_init Unexecuted instantiation: my_symlink.c:inline_mysql_cond_init Unexecuted instantiation: my_sync.c:inline_mysql_cond_init Unexecuted instantiation: charset.c:inline_mysql_cond_init Unexecuted instantiation: errors.c:inline_mysql_cond_init Unexecuted instantiation: hash.c:inline_mysql_cond_init Unexecuted instantiation: mf_dirname.c:inline_mysql_cond_init Unexecuted instantiation: mf_loadpath.c:inline_mysql_cond_init Unexecuted instantiation: mf_pack.c:inline_mysql_cond_init Unexecuted instantiation: my_div.c:inline_mysql_cond_init Unexecuted instantiation: my_getwd.c:inline_mysql_cond_init Unexecuted instantiation: my_lib.c:inline_mysql_cond_init Unexecuted instantiation: my_open.c:inline_mysql_cond_init Unexecuted instantiation: my_read.c:inline_mysql_cond_init Unexecuted instantiation: array.c:inline_mysql_cond_init Unexecuted instantiation: charset-def.c:inline_mysql_cond_init Unexecuted instantiation: mf_qsort.c:inline_mysql_cond_init Unexecuted instantiation: my_alloc.c:inline_mysql_cond_init |
1038 | | |
1039 | | static inline int inline_mysql_cond_destroy( |
1040 | | mysql_cond_t *that) |
1041 | 0 | { |
1042 | 0 | #ifdef HAVE_PSI_COND_INTERFACE |
1043 | 0 | if (psi_likely(that->m_psi != NULL)) |
1044 | 0 | { |
1045 | 0 | PSI_COND_CALL(destroy_cond)(that->m_psi); |
1046 | 0 | that->m_psi= NULL; |
1047 | 0 | } |
1048 | 0 | #endif |
1049 | 0 | return pthread_cond_destroy(&that->m_cond); |
1050 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_cond_destroy Unexecuted instantiation: my_malloc.c:inline_mysql_cond_destroy Unexecuted instantiation: my_static.c:inline_mysql_cond_destroy Unexecuted instantiation: my_thr_init.c:inline_mysql_cond_destroy Unexecuted instantiation: thr_mutex.c:inline_mysql_cond_destroy Unexecuted instantiation: thr_rwlock.c:inline_mysql_cond_destroy Unexecuted instantiation: psi_noop.c:inline_mysql_cond_destroy Unexecuted instantiation: my_error.c:inline_mysql_cond_destroy Unexecuted instantiation: my_getsystime.c:inline_mysql_cond_destroy Unexecuted instantiation: my_init.c:inline_mysql_cond_destroy Unexecuted instantiation: my_mess.c:inline_mysql_cond_destroy Unexecuted instantiation: my_once.c:inline_mysql_cond_destroy Unexecuted instantiation: my_symlink.c:inline_mysql_cond_destroy Unexecuted instantiation: my_sync.c:inline_mysql_cond_destroy Unexecuted instantiation: charset.c:inline_mysql_cond_destroy Unexecuted instantiation: errors.c:inline_mysql_cond_destroy Unexecuted instantiation: hash.c:inline_mysql_cond_destroy Unexecuted instantiation: mf_dirname.c:inline_mysql_cond_destroy Unexecuted instantiation: mf_loadpath.c:inline_mysql_cond_destroy Unexecuted instantiation: mf_pack.c:inline_mysql_cond_destroy Unexecuted instantiation: my_div.c:inline_mysql_cond_destroy Unexecuted instantiation: my_getwd.c:inline_mysql_cond_destroy Unexecuted instantiation: my_lib.c:inline_mysql_cond_destroy Unexecuted instantiation: my_open.c:inline_mysql_cond_destroy Unexecuted instantiation: my_read.c:inline_mysql_cond_destroy Unexecuted instantiation: array.c:inline_mysql_cond_destroy Unexecuted instantiation: charset-def.c:inline_mysql_cond_destroy Unexecuted instantiation: mf_qsort.c:inline_mysql_cond_destroy Unexecuted instantiation: my_alloc.c:inline_mysql_cond_destroy |
1051 | | |
1052 | | #ifdef HAVE_PSI_COND_INTERFACE |
1053 | | ATTRIBUTE_COLD int psi_cond_wait(mysql_cond_t *that, mysql_mutex_t *mutex, |
1054 | | const char *file, uint line); |
1055 | | ATTRIBUTE_COLD int psi_cond_timedwait(mysql_cond_t *that, mysql_mutex_t *mutex, |
1056 | | const struct timespec *abstime, |
1057 | | const char *file, uint line); |
1058 | | #endif |
1059 | | |
1060 | | static inline int inline_mysql_cond_wait( |
1061 | | mysql_cond_t *that, |
1062 | | mysql_mutex_t *mutex |
1063 | | #if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) |
1064 | | , const char *src_file, uint src_line |
1065 | | #endif |
1066 | | ) |
1067 | 0 | { |
1068 | 0 | #ifdef HAVE_PSI_COND_INTERFACE |
1069 | 0 | if (psi_likely(that->m_psi != NULL)) |
1070 | 0 | return psi_cond_wait(that, mutex, src_file, src_line); |
1071 | 0 | #endif |
1072 | 0 | return my_cond_wait(&that->m_cond, &mutex->m_mutex); |
1073 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_cond_wait Unexecuted instantiation: my_malloc.c:inline_mysql_cond_wait Unexecuted instantiation: my_static.c:inline_mysql_cond_wait Unexecuted instantiation: my_thr_init.c:inline_mysql_cond_wait Unexecuted instantiation: thr_mutex.c:inline_mysql_cond_wait Unexecuted instantiation: thr_rwlock.c:inline_mysql_cond_wait Unexecuted instantiation: psi_noop.c:inline_mysql_cond_wait Unexecuted instantiation: my_error.c:inline_mysql_cond_wait Unexecuted instantiation: my_getsystime.c:inline_mysql_cond_wait Unexecuted instantiation: my_init.c:inline_mysql_cond_wait Unexecuted instantiation: my_mess.c:inline_mysql_cond_wait Unexecuted instantiation: my_once.c:inline_mysql_cond_wait Unexecuted instantiation: my_symlink.c:inline_mysql_cond_wait Unexecuted instantiation: my_sync.c:inline_mysql_cond_wait Unexecuted instantiation: charset.c:inline_mysql_cond_wait Unexecuted instantiation: errors.c:inline_mysql_cond_wait Unexecuted instantiation: hash.c:inline_mysql_cond_wait Unexecuted instantiation: mf_dirname.c:inline_mysql_cond_wait Unexecuted instantiation: mf_loadpath.c:inline_mysql_cond_wait Unexecuted instantiation: mf_pack.c:inline_mysql_cond_wait Unexecuted instantiation: my_div.c:inline_mysql_cond_wait Unexecuted instantiation: my_getwd.c:inline_mysql_cond_wait Unexecuted instantiation: my_lib.c:inline_mysql_cond_wait Unexecuted instantiation: my_open.c:inline_mysql_cond_wait Unexecuted instantiation: my_read.c:inline_mysql_cond_wait Unexecuted instantiation: array.c:inline_mysql_cond_wait Unexecuted instantiation: charset-def.c:inline_mysql_cond_wait Unexecuted instantiation: mf_qsort.c:inline_mysql_cond_wait Unexecuted instantiation: my_alloc.c:inline_mysql_cond_wait |
1074 | | |
1075 | | static inline int inline_mysql_cond_timedwait( |
1076 | | mysql_cond_t *that, |
1077 | | mysql_mutex_t *mutex, |
1078 | | const struct timespec *abstime |
1079 | | #if defined(SAFE_MUTEX) || defined(HAVE_PSI_COND_INTERFACE) |
1080 | | , const char *src_file, uint src_line |
1081 | | #endif |
1082 | | ) |
1083 | 0 | { |
1084 | 0 | #ifdef HAVE_PSI_COND_INTERFACE |
1085 | 0 | if (psi_likely(that->m_psi != NULL)) |
1086 | 0 | return psi_cond_timedwait(that, mutex, abstime, src_file, src_line); |
1087 | 0 | #endif |
1088 | 0 | return my_cond_timedwait(&that->m_cond, &mutex->m_mutex, abstime); |
1089 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_malloc.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_static.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_thr_init.c:inline_mysql_cond_timedwait Unexecuted instantiation: thr_mutex.c:inline_mysql_cond_timedwait Unexecuted instantiation: thr_rwlock.c:inline_mysql_cond_timedwait Unexecuted instantiation: psi_noop.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_error.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_getsystime.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_init.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_mess.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_once.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_symlink.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_sync.c:inline_mysql_cond_timedwait Unexecuted instantiation: charset.c:inline_mysql_cond_timedwait Unexecuted instantiation: errors.c:inline_mysql_cond_timedwait Unexecuted instantiation: hash.c:inline_mysql_cond_timedwait Unexecuted instantiation: mf_dirname.c:inline_mysql_cond_timedwait Unexecuted instantiation: mf_loadpath.c:inline_mysql_cond_timedwait Unexecuted instantiation: mf_pack.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_div.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_getwd.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_lib.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_open.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_read.c:inline_mysql_cond_timedwait Unexecuted instantiation: array.c:inline_mysql_cond_timedwait Unexecuted instantiation: charset-def.c:inline_mysql_cond_timedwait Unexecuted instantiation: mf_qsort.c:inline_mysql_cond_timedwait Unexecuted instantiation: my_alloc.c:inline_mysql_cond_timedwait |
1090 | | |
1091 | | static inline int inline_mysql_cond_signal( |
1092 | | mysql_cond_t *that) |
1093 | 0 | { |
1094 | 0 | int result; |
1095 | 0 | #ifdef HAVE_PSI_COND_INTERFACE |
1096 | 0 | if (psi_likely(that->m_psi != NULL)) |
1097 | 0 | PSI_COND_CALL(signal_cond)(that->m_psi); |
1098 | 0 | #endif |
1099 | 0 | result= pthread_cond_signal(&that->m_cond); |
1100 | 0 | return result; |
1101 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_cond_signal Unexecuted instantiation: my_malloc.c:inline_mysql_cond_signal Unexecuted instantiation: my_static.c:inline_mysql_cond_signal Unexecuted instantiation: my_thr_init.c:inline_mysql_cond_signal Unexecuted instantiation: thr_mutex.c:inline_mysql_cond_signal Unexecuted instantiation: thr_rwlock.c:inline_mysql_cond_signal Unexecuted instantiation: psi_noop.c:inline_mysql_cond_signal Unexecuted instantiation: my_error.c:inline_mysql_cond_signal Unexecuted instantiation: my_getsystime.c:inline_mysql_cond_signal Unexecuted instantiation: my_init.c:inline_mysql_cond_signal Unexecuted instantiation: my_mess.c:inline_mysql_cond_signal Unexecuted instantiation: my_once.c:inline_mysql_cond_signal Unexecuted instantiation: my_symlink.c:inline_mysql_cond_signal Unexecuted instantiation: my_sync.c:inline_mysql_cond_signal Unexecuted instantiation: charset.c:inline_mysql_cond_signal Unexecuted instantiation: errors.c:inline_mysql_cond_signal Unexecuted instantiation: hash.c:inline_mysql_cond_signal Unexecuted instantiation: mf_dirname.c:inline_mysql_cond_signal Unexecuted instantiation: mf_loadpath.c:inline_mysql_cond_signal Unexecuted instantiation: mf_pack.c:inline_mysql_cond_signal Unexecuted instantiation: my_div.c:inline_mysql_cond_signal Unexecuted instantiation: my_getwd.c:inline_mysql_cond_signal Unexecuted instantiation: my_lib.c:inline_mysql_cond_signal Unexecuted instantiation: my_open.c:inline_mysql_cond_signal Unexecuted instantiation: my_read.c:inline_mysql_cond_signal Unexecuted instantiation: array.c:inline_mysql_cond_signal Unexecuted instantiation: charset-def.c:inline_mysql_cond_signal Unexecuted instantiation: mf_qsort.c:inline_mysql_cond_signal Unexecuted instantiation: my_alloc.c:inline_mysql_cond_signal |
1102 | | |
1103 | | static inline int inline_mysql_cond_broadcast( |
1104 | | mysql_cond_t *that) |
1105 | 0 | { |
1106 | 0 | int result; |
1107 | 0 | #ifdef HAVE_PSI_COND_INTERFACE |
1108 | 0 | if (psi_likely(that->m_psi != NULL)) |
1109 | 0 | PSI_COND_CALL(broadcast_cond)(that->m_psi); |
1110 | 0 | #endif |
1111 | 0 | result= pthread_cond_broadcast(&that->m_cond); |
1112 | 0 | return result; |
1113 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_malloc.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_static.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_thr_init.c:inline_mysql_cond_broadcast Unexecuted instantiation: thr_mutex.c:inline_mysql_cond_broadcast Unexecuted instantiation: thr_rwlock.c:inline_mysql_cond_broadcast Unexecuted instantiation: psi_noop.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_error.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_getsystime.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_init.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_mess.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_once.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_symlink.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_sync.c:inline_mysql_cond_broadcast Unexecuted instantiation: charset.c:inline_mysql_cond_broadcast Unexecuted instantiation: errors.c:inline_mysql_cond_broadcast Unexecuted instantiation: hash.c:inline_mysql_cond_broadcast Unexecuted instantiation: mf_dirname.c:inline_mysql_cond_broadcast Unexecuted instantiation: mf_loadpath.c:inline_mysql_cond_broadcast Unexecuted instantiation: mf_pack.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_div.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_getwd.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_lib.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_open.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_read.c:inline_mysql_cond_broadcast Unexecuted instantiation: array.c:inline_mysql_cond_broadcast Unexecuted instantiation: charset-def.c:inline_mysql_cond_broadcast Unexecuted instantiation: mf_qsort.c:inline_mysql_cond_broadcast Unexecuted instantiation: my_alloc.c:inline_mysql_cond_broadcast |
1114 | | |
1115 | | static inline void inline_mysql_thread_register( |
1116 | | #ifdef HAVE_PSI_THREAD_INTERFACE |
1117 | | const char *category, |
1118 | | PSI_thread_info *info, |
1119 | | int count |
1120 | | #else |
1121 | | const char *category __attribute__ ((unused)), |
1122 | | void *info __attribute__ ((unused)), |
1123 | | int count __attribute__ ((unused)) |
1124 | | #endif |
1125 | | ) |
1126 | 0 | { |
1127 | 0 | #ifdef HAVE_PSI_THREAD_INTERFACE |
1128 | 0 | PSI_THREAD_CALL(register_thread)(category, info, count); |
1129 | 0 | #endif |
1130 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_thread_register Unexecuted instantiation: my_malloc.c:inline_mysql_thread_register Unexecuted instantiation: my_static.c:inline_mysql_thread_register Unexecuted instantiation: my_thr_init.c:inline_mysql_thread_register Unexecuted instantiation: thr_mutex.c:inline_mysql_thread_register Unexecuted instantiation: thr_rwlock.c:inline_mysql_thread_register Unexecuted instantiation: psi_noop.c:inline_mysql_thread_register Unexecuted instantiation: my_error.c:inline_mysql_thread_register Unexecuted instantiation: my_getsystime.c:inline_mysql_thread_register Unexecuted instantiation: my_init.c:inline_mysql_thread_register Unexecuted instantiation: my_mess.c:inline_mysql_thread_register Unexecuted instantiation: my_once.c:inline_mysql_thread_register Unexecuted instantiation: my_symlink.c:inline_mysql_thread_register Unexecuted instantiation: my_sync.c:inline_mysql_thread_register Unexecuted instantiation: charset.c:inline_mysql_thread_register Unexecuted instantiation: errors.c:inline_mysql_thread_register Unexecuted instantiation: hash.c:inline_mysql_thread_register Unexecuted instantiation: mf_dirname.c:inline_mysql_thread_register Unexecuted instantiation: mf_loadpath.c:inline_mysql_thread_register Unexecuted instantiation: mf_pack.c:inline_mysql_thread_register Unexecuted instantiation: my_div.c:inline_mysql_thread_register Unexecuted instantiation: my_getwd.c:inline_mysql_thread_register Unexecuted instantiation: my_lib.c:inline_mysql_thread_register Unexecuted instantiation: my_open.c:inline_mysql_thread_register Unexecuted instantiation: my_read.c:inline_mysql_thread_register Unexecuted instantiation: array.c:inline_mysql_thread_register Unexecuted instantiation: charset-def.c:inline_mysql_thread_register Unexecuted instantiation: mf_qsort.c:inline_mysql_thread_register Unexecuted instantiation: my_alloc.c:inline_mysql_thread_register |
1131 | | |
1132 | | #ifdef HAVE_PSI_THREAD_INTERFACE |
1133 | | static inline int inline_mysql_thread_create( |
1134 | | PSI_thread_key key, |
1135 | | pthread_t *thread, const pthread_attr_t *attr, |
1136 | | void *(*start_routine)(void*), void *arg) |
1137 | 0 | { |
1138 | 0 | int result; |
1139 | 0 | result= PSI_THREAD_CALL(spawn_thread)(key, thread, attr, start_routine, arg); |
1140 | 0 | return result; |
1141 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_thread_create Unexecuted instantiation: my_malloc.c:inline_mysql_thread_create Unexecuted instantiation: my_static.c:inline_mysql_thread_create Unexecuted instantiation: my_thr_init.c:inline_mysql_thread_create Unexecuted instantiation: thr_mutex.c:inline_mysql_thread_create Unexecuted instantiation: thr_rwlock.c:inline_mysql_thread_create Unexecuted instantiation: psi_noop.c:inline_mysql_thread_create Unexecuted instantiation: my_error.c:inline_mysql_thread_create Unexecuted instantiation: my_getsystime.c:inline_mysql_thread_create Unexecuted instantiation: my_init.c:inline_mysql_thread_create Unexecuted instantiation: my_mess.c:inline_mysql_thread_create Unexecuted instantiation: my_once.c:inline_mysql_thread_create Unexecuted instantiation: my_symlink.c:inline_mysql_thread_create Unexecuted instantiation: my_sync.c:inline_mysql_thread_create Unexecuted instantiation: charset.c:inline_mysql_thread_create Unexecuted instantiation: errors.c:inline_mysql_thread_create Unexecuted instantiation: hash.c:inline_mysql_thread_create Unexecuted instantiation: mf_dirname.c:inline_mysql_thread_create Unexecuted instantiation: mf_loadpath.c:inline_mysql_thread_create Unexecuted instantiation: mf_pack.c:inline_mysql_thread_create Unexecuted instantiation: my_div.c:inline_mysql_thread_create Unexecuted instantiation: my_getwd.c:inline_mysql_thread_create Unexecuted instantiation: my_lib.c:inline_mysql_thread_create Unexecuted instantiation: my_open.c:inline_mysql_thread_create Unexecuted instantiation: my_read.c:inline_mysql_thread_create Unexecuted instantiation: array.c:inline_mysql_thread_create Unexecuted instantiation: charset-def.c:inline_mysql_thread_create Unexecuted instantiation: mf_qsort.c:inline_mysql_thread_create Unexecuted instantiation: my_alloc.c:inline_mysql_thread_create |
1142 | | |
1143 | | static inline void inline_mysql_thread_set_psi_id(my_thread_id id) |
1144 | 0 | { |
1145 | 0 | struct PSI_thread *psi= PSI_THREAD_CALL(get_thread)(); |
1146 | 0 | PSI_THREAD_CALL(set_thread_id)(psi, id); |
1147 | 0 | } Unexecuted instantiation: fuzz_json.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_malloc.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_static.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_thr_init.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: thr_mutex.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: thr_rwlock.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: psi_noop.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_error.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_getsystime.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_init.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_mess.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_once.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_symlink.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_sync.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: charset.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: errors.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: hash.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: mf_dirname.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: mf_loadpath.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: mf_pack.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_div.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_getwd.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_lib.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_open.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_read.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: array.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: charset-def.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: mf_qsort.c:inline_mysql_thread_set_psi_id Unexecuted instantiation: my_alloc.c:inline_mysql_thread_set_psi_id |
1148 | | |
1149 | | #ifdef __cplusplus |
1150 | | class THD; |
1151 | | static inline void inline_mysql_thread_set_psi_THD(THD *thd) |
1152 | | { |
1153 | | struct PSI_thread *psi= PSI_THREAD_CALL(get_thread)(); |
1154 | | PSI_THREAD_CALL(set_thread_THD)(psi, thd); |
1155 | | } |
1156 | | #endif /* __cplusplus */ |
1157 | | |
1158 | 0 | static inline void mysql_thread_set_peer_port(uint port __attribute__ ((unused))) { |
1159 | 0 | #ifdef HAVE_PSI_THREAD_INTERFACE |
1160 | 0 | struct PSI_thread *psi = PSI_THREAD_CALL(get_thread)(); |
1161 | 0 | PSI_THREAD_CALL(set_thread_peer_port)(psi, port); |
1162 | 0 | #endif |
1163 | 0 | } Unexecuted instantiation: fuzz_json.c:mysql_thread_set_peer_port Unexecuted instantiation: my_malloc.c:mysql_thread_set_peer_port Unexecuted instantiation: my_static.c:mysql_thread_set_peer_port Unexecuted instantiation: my_thr_init.c:mysql_thread_set_peer_port Unexecuted instantiation: thr_mutex.c:mysql_thread_set_peer_port Unexecuted instantiation: thr_rwlock.c:mysql_thread_set_peer_port Unexecuted instantiation: psi_noop.c:mysql_thread_set_peer_port Unexecuted instantiation: my_error.c:mysql_thread_set_peer_port Unexecuted instantiation: my_getsystime.c:mysql_thread_set_peer_port Unexecuted instantiation: my_init.c:mysql_thread_set_peer_port Unexecuted instantiation: my_mess.c:mysql_thread_set_peer_port Unexecuted instantiation: my_once.c:mysql_thread_set_peer_port Unexecuted instantiation: my_symlink.c:mysql_thread_set_peer_port Unexecuted instantiation: my_sync.c:mysql_thread_set_peer_port Unexecuted instantiation: charset.c:mysql_thread_set_peer_port Unexecuted instantiation: errors.c:mysql_thread_set_peer_port Unexecuted instantiation: hash.c:mysql_thread_set_peer_port Unexecuted instantiation: mf_dirname.c:mysql_thread_set_peer_port Unexecuted instantiation: mf_loadpath.c:mysql_thread_set_peer_port Unexecuted instantiation: mf_pack.c:mysql_thread_set_peer_port Unexecuted instantiation: my_div.c:mysql_thread_set_peer_port Unexecuted instantiation: my_getwd.c:mysql_thread_set_peer_port Unexecuted instantiation: my_lib.c:mysql_thread_set_peer_port Unexecuted instantiation: my_open.c:mysql_thread_set_peer_port Unexecuted instantiation: my_read.c:mysql_thread_set_peer_port Unexecuted instantiation: array.c:mysql_thread_set_peer_port Unexecuted instantiation: charset-def.c:mysql_thread_set_peer_port Unexecuted instantiation: mf_qsort.c:mysql_thread_set_peer_port Unexecuted instantiation: my_alloc.c:mysql_thread_set_peer_port |
1164 | | |
1165 | | #endif |
1166 | | |
1167 | | #endif /* DISABLE_MYSQL_THREAD_H */ |
1168 | | |
1169 | | /** @} (end of group Thread_instrumentation) */ |
1170 | | |
1171 | | #endif |
1172 | | |