Look at https://github.com/SVL-PSU/crete-dev/blob/71ab5f8f3c6116e1024219d6b93190102c956584/lib/include/crete/cluster/node_driver.h#L302:L323
Notice that lock's mutex is released upon function scope exit. It is held during transmission of the trace. I don't believe this is necessary. Rather, I believe:
auto lock = node.acquire();
auto trace = lock->pop_trace();
Should be:
auto trace = node.acquire()->pop_trace();
Thus node is immediately released upon completion of the statement.