Remove the tracer tool's constructor and destructor functions

Change-Id: I12d88af726074fb15f8159580c85c12888f72172
Este commit está contenido en:
Laurent Morichetti
2022-05-23 22:04:26 -07:00
padre 15f65a4d27
commit e9b3b7c9a0
Se han modificado 7 ficheros con 209 adiciones y 146 borrados
+15 -3
Ver fichero
@@ -45,7 +45,7 @@ class TraceBufferBase {
trace_buffer->Flush();
}
static void Push(TraceBufferBase* elem) {
static void Register(TraceBufferBase* elem) {
std::lock_guard lock(mutex_);
auto** prev_ptr = &head_;
@@ -56,12 +56,24 @@ class TraceBufferBase {
*prev_ptr = elem;
}
static void Unregister(TraceBufferBase* elem) {
std::lock_guard lock(mutex_);
auto** prev_ptr = &head_;
while (*prev_ptr != nullptr && *prev_ptr != elem) prev_ptr = &(*prev_ptr)->next_;
assert(*prev_ptr != nullptr && "elem is not in the list");
*prev_ptr = elem->next_;
}
TraceBufferBase(std::string name, int priority)
: name_(std::move(name)), priority_(priority), next_(nullptr) {}
TraceBufferBase(const TraceBufferBase&) = delete;
TraceBufferBase& operator=(const TraceBufferBase&) = delete;
virtual ~TraceBufferBase() { Unregister(this); }
virtual void Flush() = 0;
std::string name() && { return std::move(name_); }
@@ -99,10 +111,10 @@ class TraceBuffer : protected TraceBufferBase {
AllocateFreeBuffer();
// Add this instance to the link list of all trace buffers in the process.
TraceBufferBase::Push(this);
Register(this);
}
~TraceBuffer() {
~TraceBuffer() override {
// Flush the remaining records. After flushing, there should not be any records left in the
// trace buffer.
Flush();