MXS-1378 Provide access to current session

Provide access to current session and session id. This will
be used by the logging mechanism for logging the session id
together with messages.
This commit is contained in:
Johan Wikman
2017-08-30 10:45:42 +03:00
parent eff5e7431a
commit 61a2c960ec
2 changed files with 31 additions and 0 deletions

View File

@ -380,4 +380,21 @@ void session_qualify_for_pool(MXS_SESSION* session);
*/ */
bool session_valid_for_pool(const MXS_SESSION* session); bool session_valid_for_pool(const MXS_SESSION* session);
/**
* @brief Return the session of the dcb currently being processed
* by the calling thread.
*
* @return A session, or NULL if the calling thread is not currently handling
* a dcb or if the calling thread is not a polling/worker thread.
**/
MXS_SESSION* session_get_current();
/**
* @brief Return the id of the session of the dcb currently being processed
* by the calling thread.
*
* @return The id of the current session or 0 if there is no current session.
**/
uint64_t session_get_current_id();
MXS_END_DECLS MXS_END_DECLS

View File

@ -960,3 +960,17 @@ bool session_valid_for_pool(const MXS_SESSION* session)
ss_dassert(session->state != SESSION_STATE_DUMMY); ss_dassert(session->state != SESSION_STATE_DUMMY);
return session->qualifies_for_pooling; return session->qualifies_for_pooling;
} }
MXS_SESSION* session_get_current()
{
DCB* dcb = dcb_get_current();
return dcb ? dcb->session : NULL;
}
uint64_t session_get_current_id()
{
MXS_SESSION* session = session_get_current();
return session ? session->ses_id : 0;
}