w_rc_t cname::run_##trximpl(Request* prequest, trxlid##_input_t& in) { \
int xct_id = prequest->xct_id(); \
\
_inc_##trxlid##_att(); \
w_rc_t e = xct_##trximpl(xct_id, in); \
if (!e.is_error()) { \
if (isAsynchCommit()) e = _pssm->commit_xct(true); \
else e = _pssm->commit_xct(); } \
if (e.err_num() != eDEADLOCK) \
_inc_##trxlid##_failed(); \
else _inc_##trxlid##_dld(); \
\
w_rc_t e2 = _pssm->abort_xct(); \
if(e2.is_error())
TRACE(
TRACE_ALWAYS,
"Xct (%d) abort failed [0x%x]\n", xct_id, e2.err_num()); \
prequest->notify_client(); \
_env_stats.inc_trx_att(); \
return (e); } \
\
prequest->notify_client(); \
_env_stats.inc_trx_com(); \
return (RCOK); }
const w_rc_t RCOK
Definition: w_rc.h:239
if(!called)
Definition: w_base.cpp:238
Definition: shore_env.h:335
Return code for most functions and methods.
Definition: w_rc.h:87
#define TRACE
Other modules in our program use this macro for reporting. We can use preprocessor macros like FILE a...
Definition: trace.h:91
#define TRACE_ALWAYS
Definition: trace_types.h:41