Coverage Report

Created: 2024-06-18 07:03

/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