diff --git a/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp b/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp index de927d7c05..9cca0785bf 100644 --- a/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp +++ b/service-t/native/libs/libnetworkstats/NetworkTracePoller.cpp @@ -149,18 +149,20 @@ void NetworkTracePoller::TraceIfaces(const std::vector& packets) { } bool NetworkTracePoller::ConsumeAll() { - std::scoped_lock lock(mBufferMutex); - if (mRingBuffer == nullptr) { - ALOGW("Tracing is not active"); - return false; - } - std::vector packets; - base::Result ret = mRingBuffer->ConsumeAll( - [&](const PacketTrace& pkt) { packets.push_back(pkt); }); - if (!ret.ok()) { - ALOGW("Failed to poll ringbuf: %s", ret.error().message().c_str()); - return false; + { + std::scoped_lock lock(mBufferMutex); + if (mRingBuffer == nullptr) { + ALOGW("Tracing is not active"); + return false; + } + + base::Result ret = mRingBuffer->ConsumeAll( + [&](const PacketTrace& pkt) { packets.push_back(pkt); }); + if (!ret.ok()) { + ALOGW("Failed to poll ringbuf: %s", ret.error().message().c_str()); + return false; + } } ATRACE_INT("NetworkTracePackets", packets.size());