mirror of
https://github.com/MariaDB/server.git
synced 2025-08-05 13:16:09 +03: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:
@@ -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
|
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
|
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. */
|
/** Delete the current thread instrumentation. */
|
||||||
typedef void (*delete_current_thread_v1_t)(void);
|
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.
|
Get a mutex instrumentation locker.
|
||||||
@param mutex the instrumented mutex to lock
|
@param mutex the instrumented mutex to lock
|
||||||
@@ -890,6 +893,8 @@ struct PSI_v1
|
|||||||
set_thread_v1_t set_thread;
|
set_thread_v1_t set_thread;
|
||||||
/** @sa delete_current_thread_v1_t. */
|
/** @sa delete_current_thread_v1_t. */
|
||||||
delete_current_thread_v1_t delete_current_thread;
|
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. */
|
/** @sa get_thread_mutex_locker_v1_t. */
|
||||||
get_thread_mutex_locker_v1_t get_thread_mutex_locker;
|
get_thread_mutex_locker_v1_t get_thread_mutex_locker;
|
||||||
/** @sa get_thread_rwlock_locker_v1_t. */
|
/** @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 struct PSI_thread* (*get_thread_v1_t)(void);
|
||||||
typedef void (*set_thread_v1_t)(struct PSI_thread *thread);
|
typedef void (*set_thread_v1_t)(struct PSI_thread *thread);
|
||||||
typedef void (*delete_current_thread_v1_t)(void);
|
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)
|
typedef struct PSI_mutex_locker* (*get_thread_mutex_locker_v1_t)
|
||||||
(struct PSI_mutex *mutex, enum PSI_mutex_operation op);
|
(struct PSI_mutex *mutex, enum PSI_mutex_operation op);
|
||||||
typedef struct PSI_rwlock_locker* (*get_thread_rwlock_locker_v1_t)
|
typedef struct PSI_rwlock_locker* (*get_thread_rwlock_locker_v1_t)
|
||||||
@@ -204,6 +205,7 @@ struct PSI_v1
|
|||||||
get_thread_v1_t get_thread;
|
get_thread_v1_t get_thread;
|
||||||
set_thread_v1_t set_thread;
|
set_thread_v1_t set_thread;
|
||||||
delete_current_thread_v1_t delete_current_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_mutex_locker_v1_t get_thread_mutex_locker;
|
||||||
get_thread_rwlock_locker_v1_t get_thread_rwlock_locker;
|
get_thread_rwlock_locker_v1_t get_thread_rwlock_locker;
|
||||||
get_thread_cond_locker_v1_t get_thread_cond_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*
|
static PSI_mutex_locker*
|
||||||
get_thread_mutex_locker_v1(PSI_mutex *mutex, PSI_mutex_operation op)
|
get_thread_mutex_locker_v1(PSI_mutex *mutex, PSI_mutex_operation op)
|
||||||
{
|
{
|
||||||
@@ -2007,6 +2014,7 @@ PSI_v1 PFS_v1=
|
|||||||
get_thread_v1,
|
get_thread_v1,
|
||||||
set_thread_v1,
|
set_thread_v1,
|
||||||
delete_current_thread_v1,
|
delete_current_thread_v1,
|
||||||
|
delete_thread_v1,
|
||||||
get_thread_mutex_locker_v1,
|
get_thread_mutex_locker_v1,
|
||||||
get_thread_rwlock_locker_v1,
|
get_thread_rwlock_locker_v1,
|
||||||
get_thread_cond_locker_v1,
|
get_thread_cond_locker_v1,
|
||||||
|
Reference in New Issue
Block a user