MXS-1632: Take mxb::atomic::add into use
The function now mostly replaces the use of atomic_add_ functions declared in atomic.h.
This commit is contained in:
@ -12,7 +12,7 @@
|
||||
*/
|
||||
|
||||
#include "dcb.hh"
|
||||
#include <maxbase/atomic.h>
|
||||
#include <maxbase/atomic.hh>
|
||||
#include <maxscale/service.h>
|
||||
|
||||
Dcb::Dcb(DCB* pDcb)
|
||||
@ -49,7 +49,7 @@ void Dcb::deleter(DCB* dcb)
|
||||
|
||||
if (pSref)
|
||||
{
|
||||
atomic_add(&pSref->connections, -1);
|
||||
mxb::atomic::add(&pSref->connections, -1);
|
||||
}
|
||||
dcb_close(dcb);
|
||||
}
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
|
||||
#include <maxbase/atomic.hh>
|
||||
#include <maxscale/log.h>
|
||||
#include "dcb.hh"
|
||||
|
||||
@ -203,7 +204,7 @@ Dcb HintRouter::connect_to_backend(MXS_SESSION* session,
|
||||
if (new_connection)
|
||||
{
|
||||
HR_DEBUG("Connected.");
|
||||
atomic_add(&sref->connections, 1);
|
||||
mxb::atomic::add(&sref->connections, 1, mxb::atomic::RELAXED);
|
||||
new_connection->service = session->service;
|
||||
|
||||
result = Dcb(new_connection);
|
||||
|
||||
@ -81,7 +81,7 @@
|
||||
#include <maxscale/alloc.h>
|
||||
#include <maxscale/server.hh>
|
||||
#include <maxscale/router.h>
|
||||
#include <maxbase/atomic.h>
|
||||
#include <maxbase/atomic.hh>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/dcb.h>
|
||||
#include <maxscale/modinfo.h>
|
||||
@ -440,7 +440,7 @@ static MXS_ROUTER_SESSION* newSession(MXS_ROUTER* instance, MXS_SESSION* session
|
||||
return NULL;
|
||||
}
|
||||
|
||||
atomic_add(&candidate->connections, 1);
|
||||
mxb::atomic::add(&candidate->connections, 1, mxb::atomic::RELAXED);
|
||||
|
||||
inst->stats.n_sessions++;
|
||||
|
||||
@ -473,7 +473,9 @@ static void freeSession(MXS_ROUTER* router_instance, MXS_ROUTER_SESSION* router_
|
||||
ROUTER_INSTANCE* router = (ROUTER_INSTANCE*) router_instance;
|
||||
ROUTER_CLIENT_SES* router_cli_ses = (ROUTER_CLIENT_SES*) router_client_ses;
|
||||
|
||||
MXB_AT_DEBUG(int prev_val = ) atomic_add(&router_cli_ses->backend->connections, -1);
|
||||
MXB_AT_DEBUG(int prev_val = ) mxb::atomic::add(&router_cli_ses->backend->connections,
|
||||
-1,
|
||||
mxb::atomic::RELAXED);
|
||||
mxb_assert(prev_val > 0);
|
||||
|
||||
MXS_FREE(router_cli_ses);
|
||||
@ -612,7 +614,7 @@ static int routeQuery(MXS_ROUTER* instance, MXS_ROUTER_SESSION* router_session,
|
||||
inst->stats.n_queries++;
|
||||
|
||||
// Due to the streaming nature of readconnroute, this is not accurate
|
||||
atomic_add_uint64(&router_cli_ses->backend->server->stats.packets, 1);
|
||||
mxb::atomic::add(&router_cli_ses->backend->server->stats.packets, 1, mxb::atomic::RELAXED);
|
||||
|
||||
/** Dirty read for quick check if router is closed. */
|
||||
if (router_cli_ses->rses_closed)
|
||||
|
||||
@ -131,7 +131,7 @@ bool RWSplitSession::handle_target_is_all(route_target_t route_target,
|
||||
else if (route_session_write(gwbuf_clone(querybuf), packet_type, qtype))
|
||||
{
|
||||
result = true;
|
||||
atomic_add_uint64(&m_router->stats().n_all, 1);
|
||||
mxb::atomic::add(&m_router->stats().n_all, 1, mxb::atomic::RELAXED);
|
||||
}
|
||||
|
||||
m_qc.set_large_query(is_large);
|
||||
|
||||
@ -438,7 +438,7 @@ bool RWSplitSession::route_session_write(GWBUF* querybuf, uint8_t command, uint3
|
||||
if (backend->execute_session_command())
|
||||
{
|
||||
nsucc += 1;
|
||||
atomic_add_uint64(&backend->server()->stats.packets, 1);
|
||||
mxb::atomic::add(&backend->server()->stats.packets, 1, mxb::atomic::RELAXED);
|
||||
m_router->server_stats(backend->server()).total++;
|
||||
m_router->server_stats(backend->server()).read++;
|
||||
|
||||
@ -805,7 +805,7 @@ SRWBackend RWSplitSession::handle_slave_is_target(uint8_t cmd, uint32_t stmt_id)
|
||||
|
||||
if (target)
|
||||
{
|
||||
atomic_add_uint64(&m_router->stats().n_slave, 1);
|
||||
mxb::atomic::add(&m_router->stats().n_slave, 1, mxb::atomic::RELAXED);
|
||||
m_router->server_stats(target->server()).read++;
|
||||
mxb_assert(target->in_use() || target->can_connect());
|
||||
}
|
||||
@ -938,7 +938,7 @@ bool RWSplitSession::handle_master_is_target(SRWBackend* dest)
|
||||
|
||||
if (target && target == m_current_master)
|
||||
{
|
||||
atomic_add_uint64(&m_router->stats().n_master, 1);
|
||||
mxb::atomic::add(&m_router->stats().n_master, 1, mxb::atomic::RELAXED);
|
||||
m_router->server_stats(target->server()).write++;
|
||||
}
|
||||
else
|
||||
@ -1092,8 +1092,8 @@ bool RWSplitSession::handle_got_target(GWBUF* querybuf, SRWBackend& target, bool
|
||||
m_current_query.copy_from(querybuf);
|
||||
}
|
||||
|
||||
atomic_add_uint64(&m_router->stats().n_queries, 1);
|
||||
atomic_add_uint64(&target->server()->stats.packets, 1);
|
||||
mxb::atomic::add(&m_router->stats().n_queries, 1, mxb::atomic::RELAXED);
|
||||
mxb::atomic::add(&target->server()->stats.packets, 1, mxb::atomic::RELAXED);
|
||||
m_router->server_stats(target->server()).total++;
|
||||
|
||||
if (!m_qc.large_query())
|
||||
|
||||
@ -421,7 +421,7 @@ void RWSplitSession::trx_replay_next_stmt()
|
||||
{
|
||||
// No more statements to execute
|
||||
m_is_replay_active = false;
|
||||
atomic_add_uint64(&m_router->stats().n_trx_replay, 1);
|
||||
mxb::atomic::add(&m_router->stats().n_trx_replay, 1, mxb::atomic::RELAXED);
|
||||
|
||||
if (!m_replayed_trx.empty())
|
||||
{
|
||||
|
||||
@ -289,10 +289,11 @@ private:
|
||||
{
|
||||
if (session_trx_is_ending(m_client->session))
|
||||
{
|
||||
atomic_add_uint64(m_qc.is_trx_still_read_only()
|
||||
? &m_router->stats().n_ro_trx
|
||||
: &m_router->stats().n_rw_trx,
|
||||
1);
|
||||
mxb::atomic::add(m_qc.is_trx_still_read_only()
|
||||
? &m_router->stats().n_ro_trx
|
||||
: &m_router->stats().n_rw_trx,
|
||||
1,
|
||||
mxb::atomic::RELAXED);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#include <maxbase/atomic.hh>
|
||||
#include <maxscale/alloc.h>
|
||||
#include <maxscale/modutil.h>
|
||||
#include <maxscale/poll.h>
|
||||
@ -81,7 +82,7 @@ SchemaRouterSession::SchemaRouterSession(MXS_SESSION* session,
|
||||
m_connect_db = db;
|
||||
}
|
||||
|
||||
atomic_add(&m_router->m_stats.sessions, 1);
|
||||
mxb::atomic::add(&m_router->m_stats.sessions, 1);
|
||||
}
|
||||
|
||||
SchemaRouterSession::~SchemaRouterSession()
|
||||
@ -415,8 +416,8 @@ int32_t SchemaRouterSession::routeQuery(GWBUF* pPacket)
|
||||
/** Session commands, route to all servers */
|
||||
if (route_session_write(pPacket, command))
|
||||
{
|
||||
atomic_add(&m_router->m_stats.n_sescmd, 1);
|
||||
atomic_add(&m_router->m_stats.n_queries, 1);
|
||||
mxb::atomic::add(&m_router->m_stats.n_sescmd, 1, mxb::atomic::RELAXED);
|
||||
mxb::atomic::add(&m_router->m_stats.n_queries, 1, mxb::atomic::RELAXED);
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
@ -453,16 +454,16 @@ int32_t SchemaRouterSession::routeQuery(GWBUF* pPacket)
|
||||
{
|
||||
if (handle_statement(pPacket, bref, command, type))
|
||||
{
|
||||
atomic_add(&m_router->m_stats.n_sescmd, 1);
|
||||
atomic_add(&m_router->m_stats.n_queries, 1);
|
||||
mxb::atomic::add(&m_router->m_stats.n_sescmd, 1, mxb::atomic::RELAXED);
|
||||
mxb::atomic::add(&m_router->m_stats.n_queries, 1, mxb::atomic::RELAXED);
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
else if (bref->write(pPacket))
|
||||
{
|
||||
/** Add one query response waiter to backend reference */
|
||||
atomic_add(&m_router->m_stats.n_queries, 1);
|
||||
atomic_add_uint64(&bref->server()->stats.packets, 1);
|
||||
mxb::atomic::add(&m_router->m_stats.n_queries, 1, mxb::atomic::RELAXED);
|
||||
mxb::atomic::add(&bref->server()->stats.packets, 1, mxb::atomic::RELAXED);
|
||||
ret = 1;
|
||||
}
|
||||
else
|
||||
@ -608,7 +609,7 @@ void SchemaRouterSession::clientReply(GWBUF* pPacket, DCB* pDcb)
|
||||
}
|
||||
else if (bref->write_stored_command())
|
||||
{
|
||||
atomic_add(&m_router->m_stats.n_queries, 1);
|
||||
mxb::atomic::add(&m_router->m_stats.n_queries, 1, mxb::atomic::RELAXED);
|
||||
}
|
||||
}
|
||||
|
||||
@ -750,7 +751,7 @@ bool SchemaRouterSession::route_session_write(GWBUF* querybuf, uint8_t command)
|
||||
bool succp = false;
|
||||
|
||||
MXS_INFO("Session write, routing to all servers.");
|
||||
atomic_add(&m_stats.longest_sescmd, 1);
|
||||
mxb::atomic::add(&m_stats.longest_sescmd, 1, mxb::atomic::RELAXED);
|
||||
|
||||
/** Increment the session command count */
|
||||
++m_sent_sescmd;
|
||||
@ -776,7 +777,7 @@ bool SchemaRouterSession::route_session_write(GWBUF* querybuf, uint8_t command)
|
||||
if ((*it)->execute_session_command())
|
||||
{
|
||||
succp = true;
|
||||
atomic_add_uint64(&(*it)->server()->stats.packets, 1);
|
||||
mxb::atomic::add(&(*it)->server()->stats.packets, 1, mxb::atomic::RELAXED);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1640,7 +1641,7 @@ bool SchemaRouterSession::handle_statement(GWBUF* querybuf, SSRBackend& bref, ui
|
||||
{
|
||||
bool succp = false;
|
||||
|
||||
atomic_add(&m_stats.longest_sescmd, 1);
|
||||
mxb::atomic::add(&m_stats.longest_sescmd, 1, mxb::atomic::RELAXED);
|
||||
|
||||
/** Increment the session command count */
|
||||
++m_sent_sescmd;
|
||||
@ -1655,7 +1656,7 @@ bool SchemaRouterSession::handle_statement(GWBUF* querybuf, SSRBackend& bref, ui
|
||||
if (bref->execute_session_command())
|
||||
{
|
||||
succp = true;
|
||||
atomic_add_uint64(&bref->server()->stats.packets, 1);
|
||||
mxb::atomic::add(&bref->server()->stats.packets, 1, mxb::atomic::RELAXED);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user