vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sat Oct 20 23:28:40 2018 +0300| [558648c43119eff8497f9abe2a8a36f9bb30fd6e] | committer: Rémi Denis-Courmont
threads: export vlc_mutex_assert() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=558648c43119eff8497f9abe2a8a36f9bb30fd6e --- include/vlc_threads.h | 22 ++++++++++++++++++++++ src/libvlc.h | 10 ---------- src/libvlccore.sym | 1 + src/misc/threads.c | 5 +++++ 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/include/vlc_threads.h b/include/vlc_threads.h index 04e8941afb..dcc9f3b5b0 100644 --- a/include/vlc_threads.h +++ b/include/vlc_threads.h @@ -439,6 +439,28 @@ VLC_API int vlc_mutex_trylock( vlc_mutex_t * ) VLC_USED; VLC_API void vlc_mutex_unlock(vlc_mutex_t *); /** + * Checks if a mutex is locked. + * + * Do not use this function directly. Use vlc_mutex_assert() instead. + * + * @note + * This function has no effects. + * It is only meant to be use in run-time assertions. + * + * @retval false in debug builds of LibVLC, + * if the mutex is not locked by the calling thread; + * @retval true in debug builds of LibVLC, + * if the mutex is locked by the calling thread; + * @retval true in release builds of LibVLC. + */ +VLC_API bool vlc_mutex_marked(const vlc_mutex_t *) VLC_USED; + +/** + * Asserts that a mutex is locked by the calling thread. + */ +#define vlc_mutex_assert(m) assert(vlc_mutex_marked(m)) + +/** * Initializes a condition variable. */ VLC_API void vlc_cond_init(vlc_cond_t *); diff --git a/src/libvlc.h b/src/libvlc.h index d30dd95de2..afe075d62c 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -68,21 +68,11 @@ void vlc_mutex_mark(const vlc_mutex_t *); * Unmarks a mutex. */ void vlc_mutex_unmark(const vlc_mutex_t *); - -/** - * Checks if a mutex is marked. - */ -bool vlc_mutex_marked(const vlc_mutex_t *); #else # define vlc_mutex_mark(m) ((void)(m)) # define vlc_mutex_unmark(m) ((void)(m)) #endif -/** - * Asserts that a mutex is locked by the calling thread. - */ -#define vlc_mutex_assert(m) assert(vlc_mutex_marked(m)) - /* * Logging */ diff --git a/src/libvlccore.sym b/src/libvlccore.sym index a4ba469b14..d9ffbd1b11 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -658,6 +658,7 @@ vlc_mutex_init_recursive vlc_mutex_lock vlc_mutex_trylock vlc_mutex_unlock +vlc_mutex_marked vlc_global_mutex vlc_object_create vlc_object_find_name diff --git a/src/misc/threads.c b/src/misc/threads.c index e0d95e53aa..e66b21a408 100644 --- a/src/misc/threads.c +++ b/src/misc/threads.c @@ -131,6 +131,11 @@ bool vlc_mutex_marked(const vlc_mutex_t *mutex) { return vlc_lock_marked(mutex, &vlc_mutex_marks); } +#else +bool vlc_mutex_marked(const vlc_mutex_t *mutex) +{ + return true; +} #endif #if defined (_WIN32) && (_WIN32_WINNT < _WIN32_WINNT_WIN8) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
