maria-developers team mailing list archive
Mailing list archive
Re: innobase/sync0policy.h converts opaque pthread_t to ULINT
On Apr 16, Sergey Vojtovich wrote:
> Something similar (HAVE_IB_ATOMIC_PTHREAD_T_GCC) was removed in
> 2b47f8ff03845f7ffe2fa3bd583dd4123dae2b61. IIRC the reason was: relevant code
> didn't follow this macro properly and this code was still functional.
> You may use os_thread_pf(os_thread_get_curr_id()) to cast it to ulint. Yes, it
> is unsafe. But I'd leave it this way assuming it works. This code is subject for
> refactoring and I would avoid further spread of hacks.
Exactly. It's DebugMutex and I'd say it's not worth fixing for cases
when pthread_t doesn't fit in ulint. DebugMutex is completely disabled
in non-debug builds anyway.
If we'll ever have a bug that would need DebugMutex to analyze and
cannot be repeated on a platform where pthread_t fits in ulint... in
that case it might make sense to get back to this. Until then I'd just
wouldn't compile DebugMutex where it doesn't work.
Chief Architect MariaDB