mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-12 12:21:30 +00:00
gst/gstinfo.c: Add mutex to serialise access to the hash table with the function pointer => function name string mapp...
Original commit message from CVS: Reviewed by: Tim-Philipp Müller <tim at centricular dot net> * gst/gstinfo.c: (_gst_debug_nameof_funcptr), (_gst_debug_register_funcptr): Add mutex to serialise access to the hash table with the function pointer => function name string mapping; make that hash table static scope (#316809). * gst/registries/.cvsignore: Remove left-over file.
This commit is contained in:
parent
3940710283
commit
b907cd9815
3 changed files with 26 additions and 9 deletions
13
ChangeLog
13
ChangeLog
|
@ -1,3 +1,16 @@
|
||||||
|
2005-09-21 Francis Labonte <francis_labonte at hotmail dot com>
|
||||||
|
|
||||||
|
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
|
* gst/gstinfo.c: (_gst_debug_nameof_funcptr),
|
||||||
|
(_gst_debug_register_funcptr):
|
||||||
|
Add mutex to serialise access to the hash table with
|
||||||
|
the function pointer => function name string mapping;
|
||||||
|
make that hash table static scope (#316809).
|
||||||
|
|
||||||
|
* gst/registries/.cvsignore:
|
||||||
|
Remove left-over file.
|
||||||
|
|
||||||
2005-09-21 Tim-Philipp Müller <tim at centricular dot net>
|
2005-09-21 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
* docs/pwg/appendix-porting.xml:
|
* docs/pwg/appendix-porting.xml:
|
||||||
|
|
|
@ -1030,7 +1030,9 @@ gst_debug_get_all_categories (void)
|
||||||
|
|
||||||
/*** FUNCTION POINTERS ********************************************************/
|
/*** FUNCTION POINTERS ********************************************************/
|
||||||
|
|
||||||
GHashTable *__gst_function_pointers = NULL;
|
static GHashTable *__gst_function_pointers; /* NULL */
|
||||||
|
static GStaticMutex __dbg_functions_mutex = G_STATIC_MUTEX_INIT;
|
||||||
|
|
||||||
const gchar *
|
const gchar *
|
||||||
_gst_debug_nameof_funcptr (GstDebugFuncPtr ptr)
|
_gst_debug_nameof_funcptr (GstDebugFuncPtr ptr)
|
||||||
G_GNUC_NO_INSTRUMENT;
|
G_GNUC_NO_INSTRUMENT;
|
||||||
|
@ -1045,9 +1047,12 @@ _gst_debug_nameof_funcptr (GstDebugFuncPtr ptr)
|
||||||
Dl_info dlinfo;
|
Dl_info dlinfo;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (__gst_function_pointers
|
if (__gst_function_pointers) {
|
||||||
&& (ptrname = g_hash_table_lookup (__gst_function_pointers, ptr))) {
|
g_static_mutex_lock (&__dbg_functions_mutex);
|
||||||
return ptrname;
|
ptrname = g_hash_table_lookup (__gst_function_pointers, ptr);
|
||||||
|
g_static_mutex_unlock (&__dbg_functions_mutex);
|
||||||
|
if (ptrname)
|
||||||
|
return ptrname;
|
||||||
}
|
}
|
||||||
/* we need to create an entry in the hash table for this one so we don't leak
|
/* we need to create an entry in the hash table for this one so we don't leak
|
||||||
* the name */
|
* the name */
|
||||||
|
@ -1072,10 +1077,14 @@ _gst_debug_register_funcptr (GstDebugFuncPtr func, gchar * ptrname)
|
||||||
{
|
{
|
||||||
gpointer ptr = (gpointer) func;
|
gpointer ptr = (gpointer) func;
|
||||||
|
|
||||||
|
g_static_mutex_lock (&__dbg_functions_mutex);
|
||||||
|
|
||||||
if (!__gst_function_pointers)
|
if (!__gst_function_pointers)
|
||||||
__gst_function_pointers = g_hash_table_new (g_direct_hash, g_direct_equal);
|
__gst_function_pointers = g_hash_table_new (g_direct_hash, g_direct_equal);
|
||||||
if (!g_hash_table_lookup (__gst_function_pointers, ptr))
|
if (!g_hash_table_lookup (__gst_function_pointers, ptr))
|
||||||
g_hash_table_insert (__gst_function_pointers, ptr, ptrname);
|
g_hash_table_insert (__gst_function_pointers, ptr, ptrname);
|
||||||
|
|
||||||
|
g_static_mutex_unlock (&__dbg_functions_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_PRINTF_EXTENSION
|
#ifdef HAVE_PRINTF_EXTENSION
|
||||||
|
|
5
gst/registries/.gitignore
vendored
5
gst/registries/.gitignore
vendored
|
@ -1,5 +0,0 @@
|
||||||
registrytest
|
|
||||||
*.bb
|
|
||||||
*.bbg
|
|
||||||
*.da
|
|
||||||
*.gcno
|
|
Loading…
Reference in a new issue