POSIX says never to compare pthread_t directly
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16501 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
4f39fe92ab
commit
62341a9526
|
@ -50,6 +50,12 @@ typedef pthread_t switch_thread_id_t;
|
|||
|
||||
SWITCH_DECLARE(switch_thread_id_t) switch_thread_self(void);
|
||||
|
||||
/*! \brief Compare two thread ids
|
||||
* \param tid1 1st Thread ID to compare
|
||||
* \param tid2 2nd Thread ID to compare
|
||||
*/
|
||||
SWITCH_DECLARE(int) switch_thread_equal(switch_thread_id_t tid1, switch_thread_id_t tid2);
|
||||
|
||||
|
||||
/*
|
||||
The pieces of apr we allow ppl to pass around between modules we typedef into our namespace and wrap all the functions
|
||||
|
|
|
@ -79,6 +79,16 @@ SWITCH_DECLARE(switch_thread_id_t) switch_thread_self(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(int) switch_thread_equal(switch_thread_id_t tid1, switch_thread_id_t tid2)
|
||||
{
|
||||
#ifdef WIN32
|
||||
return (tid1 == tid2);
|
||||
#else
|
||||
return apr_os_thread_equal(tid1, tid2);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(void) switch_pool_clear(switch_memory_pool_t *p)
|
||||
{
|
||||
apr_pool_clear(p);
|
||||
|
|
|
@ -1143,10 +1143,7 @@ SWITCH_DECLARE(void) switch_core_session_disable_heartbeat(switch_core_session_t
|
|||
|
||||
SWITCH_DECLARE(switch_bool_t) switch_core_session_in_thread(switch_core_session_t *session)
|
||||
{
|
||||
if (switch_thread_self() == session->thread_id) {
|
||||
return SWITCH_TRUE;
|
||||
}
|
||||
return SWITCH_FALSE;
|
||||
return switch_thread_equal(switch_thread_self(), session->thread_id) ? SWITCH_TRUE : SWITCH_FALSE;
|
||||
}
|
||||
|
||||
static void *SWITCH_THREAD_FUNC switch_core_session_thread(switch_thread_t *thread, void *obj)
|
||||
|
|
Loading…
Reference in New Issue