Phosphor
Asynchronous Events

Macros

#define TRACE_ASYNC_START(category, name, id, ...)
 
#define TRACE_ASYNC_START0(category, name, id)
 
#define TRACE_ASYNC_START1(category, name, id, arg1_name, arg1)
 
#define TRACE_ASYNC_END(category, name, id, ...)
 
#define TRACE_ASYNC_END0(category, name, id)
 
#define TRACE_ASYNC_END1(category, name, id, arg1_name, arg1)
 

Detailed Description

Asynchronous events are used for events that are not scoped to a single thread and have duration. They have an additional 'id' argument which is used to match up the START and END events.

Example:

// Thread 1
TRACE_ASYNC_START0('Memcached:Frontend', 'EWOULDBLOCK', 123)

// Thread 2
TRACE_ASYNC_END0('Memcached:Frontend', 'EWOULDBLOCK', 123)

Macro Definition Documentation

#define TRACE_ASYNC_END (   category,
  name,
  id,
  ... 
)
Value:
PHOSPHOR_INTERNAL_TRACE_EVENT( \
category, \
name, \
"id_end", \
"arg1_end", \
phosphor::TraceEvent::Type::AsyncEnd, \
id, \
__VA_ARGS__)
#define TRACE_ASYNC_END0 (   category,
  name,
  id 
)
Value:
PHOSPHOR_INTERNAL_TRACE_EVENT( \
category, \
name, \
"id_end", \
"", \
phosphor::TraceEvent::Type::AsyncEnd, \
id)
#define TRACE_ASYNC_END1 (   category,
  name,
  id,
  arg1_name,
  arg1 
)
Value:
PHOSPHOR_INTERNAL_TRACE_EVENT( \
category, \
name, \
"id_end", \
arg1_name, \
phosphor::TraceEvent::Type::AsyncEnd, \
id, \
arg1)
#define TRACE_ASYNC_START (   category,
  name,
  id,
  ... 
)
Value:
PHOSPHOR_INTERNAL_TRACE_EVENT( \
category, \
name, \
"id", \
"arg1", \
phosphor::TraceEvent::Type::AsyncStart, \
id, \
__VA_ARGS__)
#define TRACE_ASYNC_START0 (   category,
  name,
  id 
)
Value:
PHOSPHOR_INTERNAL_TRACE_EVENT( \
category, \
name, \
"id", \
"", \
phosphor::TraceEvent::Type::AsyncStart, \
id)
#define TRACE_ASYNC_START1 (   category,
  name,
  id,
  arg1_name,
  arg1 
)
Value:
PHOSPHOR_INTERNAL_TRACE_EVENT( \
category, \
name, \
"id", \
arg1_name, \
phosphor::TraceEvent::Type::AsyncStart, \
id, \
arg1)