Commit 6620fbd6 authored by Teodor Mircea Ionita's avatar Teodor Mircea Ionita

MDEV-15778: On macOS pthread_t is opaque, requires explicit cast

On macOS pthread id is a pointer to struct _opaque_pthread_t type,
requires explicit cast to ulint which in turn is size_t;
Was failing with Clang 9.1.0 Debug build on macOS 10.13.4:

sync0policy.h:53:4: error: cannot initialize a member subobject of type 'ulint'
(aka 'unsigned long') with an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *')
m_thread_id(os_thread_id_t(ULINT_UNDEFINED))
                        ^           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sync0policy.h:79:4: error: cannot initialize a parameter of type 'int64' (aka 'long long') with
an rvalue of type 'os_thread_id_t' (aka '_opaque_pthread_t *')
my_atomic_storelint(&m_thread_id, os_thread_get_curr_id());
parent 70e88b50
......@@ -50,7 +50,7 @@ class MutexDebug {
m_mutex(),
m_filename(),
m_line(),
m_thread_id(os_thread_id_t(ULINT_UNDEFINED))
m_thread_id(ULINT_UNDEFINED)
{
/* No op */
}
......@@ -76,7 +76,7 @@ class MutexDebug {
{
m_mutex = mutex;
my_atomic_storelint(&m_thread_id, os_thread_get_curr_id());
my_atomic_storelint(&m_thread_id, reinterpret_cast<ulint>(os_thread_get_curr_id()));
m_filename = filename;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment