mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 10:14:19 +01:00
Bug#44210 Performance schema: pool-of-threads threads instrumentation is missing
WL#5136 Pool of threads Added an explicit delete_thread() API in the instrumentation, to be used by the pool of threads implementations.
This commit is contained in:
parent
f2338872bb
commit
a1917ee687
3 changed files with 16 additions and 1 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2008-2009 Sun Microsystems, Inc
|
||||
/* Copyright (C) 2008-2010 Sun Microsystems, Inc
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -614,6 +614,9 @@ typedef void (*set_thread_v1_t)(struct PSI_thread *thread);
|
|||
/** Delete the current thread instrumentation. */
|
||||
typedef void (*delete_current_thread_v1_t)(void);
|
||||
|
||||
/** Delete a thread instrumentation. */
|
||||
typedef void (*delete_thread_v1_t)(struct PSI_thread *thread);
|
||||
|
||||
/**
|
||||
Get a mutex instrumentation locker.
|
||||
@param mutex the instrumented mutex to lock
|
||||
|
@ -890,6 +893,8 @@ struct PSI_v1
|
|||
set_thread_v1_t set_thread;
|
||||
/** @sa delete_current_thread_v1_t. */
|
||||
delete_current_thread_v1_t delete_current_thread;
|
||||
/** @sa delete_thread_v1_t. */
|
||||
delete_thread_v1_t delete_thread;
|
||||
/** @sa get_thread_mutex_locker_v1_t. */
|
||||
get_thread_mutex_locker_v1_t get_thread_mutex_locker;
|
||||
/** @sa get_thread_rwlock_locker_v1_t. */
|
||||
|
|
|
@ -127,6 +127,7 @@ typedef void (*set_thread_id_v1_t)(struct PSI_thread *thread,
|
|||
typedef struct PSI_thread* (*get_thread_v1_t)(void);
|
||||
typedef void (*set_thread_v1_t)(struct PSI_thread *thread);
|
||||
typedef void (*delete_current_thread_v1_t)(void);
|
||||
typedef void (*delete_thread_v1_t)(struct PSI_thread *thread);
|
||||
typedef struct PSI_mutex_locker* (*get_thread_mutex_locker_v1_t)
|
||||
(struct PSI_mutex *mutex, enum PSI_mutex_operation op);
|
||||
typedef struct PSI_rwlock_locker* (*get_thread_rwlock_locker_v1_t)
|
||||
|
@ -204,6 +205,7 @@ struct PSI_v1
|
|||
get_thread_v1_t get_thread;
|
||||
set_thread_v1_t set_thread;
|
||||
delete_current_thread_v1_t delete_current_thread;
|
||||
delete_thread_v1_t delete_thread;
|
||||
get_thread_mutex_locker_v1_t get_thread_mutex_locker;
|
||||
get_thread_rwlock_locker_v1_t get_thread_rwlock_locker;
|
||||
get_thread_cond_locker_v1_t get_thread_cond_locker;
|
||||
|
|
|
@ -1081,6 +1081,13 @@ static void delete_current_thread_v1(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void delete_thread_v1(PSI_thread *thread)
|
||||
{
|
||||
PFS_thread *pfs= reinterpret_cast<PFS_thread*> (thread);
|
||||
if (pfs != NULL)
|
||||
destroy_thread(pfs);
|
||||
}
|
||||
|
||||
static PSI_mutex_locker*
|
||||
get_thread_mutex_locker_v1(PSI_mutex *mutex, PSI_mutex_operation op)
|
||||
{
|
||||
|
@ -2007,6 +2014,7 @@ PSI_v1 PFS_v1=
|
|||
get_thread_v1,
|
||||
set_thread_v1,
|
||||
delete_current_thread_v1,
|
||||
delete_thread_v1,
|
||||
get_thread_mutex_locker_v1,
|
||||
get_thread_rwlock_locker_v1,
|
||||
get_thread_cond_locker_v1,
|
||||
|
|
Loading…
Add table
Reference in a new issue