[tracing] Rename disabled-by-default-toplevel.flow to toplevel.flow
toplevel.flow trace events ended up being quite useful. Move them out of disabled-by-default for better visibility. R=gab@chromium.org TBR=rockot@google.com BUG=932167 Change-Id: I90076f2e776b591ed7a485ed42bf8b64daedc1cd Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2111310 Commit-Queue: Alexander Timin <altimin@chromium.org> Reviewed-by: Alexander Timin <altimin@chromium.org> Reviewed-by: Sami Kyöstilä <skyostil@chromium.org> Reviewed-by: Gabriel Charette <gab@chromium.org> Cr-Commit-Position: refs/heads/master@{#770566}
This commit is contained in:

committed by
Commit Bot

parent
b312372f03
commit
2432c73179
base
components/tracing/common
ipc
mojo
services/tracing/public/cpp
@ -130,7 +130,7 @@ bool MessagePumpLibevent::WatchFileDescriptor(int fd,
|
|||||||
// threadsafe, and your watcher may never be registered.
|
// threadsafe, and your watcher may never be registered.
|
||||||
DCHECK(watch_file_descriptor_caller_checker_.CalledOnValidThread());
|
DCHECK(watch_file_descriptor_caller_checker_.CalledOnValidThread());
|
||||||
|
|
||||||
TRACE_EVENT_WITH_FLOW1(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW1("toplevel.flow",
|
||||||
"MessagePumpLibevent::WatchFileDescriptor",
|
"MessagePumpLibevent::WatchFileDescriptor",
|
||||||
reinterpret_cast<uintptr_t>(controller) ^ fd,
|
reinterpret_cast<uintptr_t>(controller) ^ fd,
|
||||||
TRACE_EVENT_FLAG_FLOW_OUT, "fd", fd);
|
TRACE_EVENT_FLAG_FLOW_OUT, "fd", fd);
|
||||||
@ -315,11 +315,10 @@ void MessagePumpLibevent::OnLibeventNotification(int fd,
|
|||||||
FdWatchController* controller = static_cast<FdWatchController*>(context);
|
FdWatchController* controller = static_cast<FdWatchController*>(context);
|
||||||
DCHECK(controller);
|
DCHECK(controller);
|
||||||
TRACE_EVENT0("toplevel", "OnLibevent");
|
TRACE_EVENT0("toplevel", "OnLibevent");
|
||||||
TRACE_EVENT_WITH_FLOW1(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW1(
|
||||||
"MessagePumpLibevent::OnLibeventNotification",
|
"toplevel.flow", "MessagePumpLibevent::OnLibeventNotification",
|
||||||
reinterpret_cast<uintptr_t>(controller) ^ fd,
|
reinterpret_cast<uintptr_t>(controller) ^ fd,
|
||||||
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT,
|
TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, "fd", fd);
|
||||||
"fd", fd);
|
|
||||||
|
|
||||||
TRACE_HEAP_PROFILER_API_SCOPED_TASK_EXECUTION heap_profiler_scope(
|
TRACE_HEAP_PROFILER_API_SCOPED_TASK_EXECUTION heap_profiler_scope(
|
||||||
controller->created_from_location().file_name());
|
controller->created_from_location().file_name());
|
||||||
|
@ -64,10 +64,10 @@ void TaskAnnotator::WillQueueTask(const char* trace_event_name,
|
|||||||
DCHECK(trace_event_name);
|
DCHECK(trace_event_name);
|
||||||
DCHECK(pending_task);
|
DCHECK(pending_task);
|
||||||
DCHECK(task_queue_name);
|
DCHECK(task_queue_name);
|
||||||
TRACE_EVENT_WITH_FLOW1(
|
TRACE_EVENT_WITH_FLOW1("toplevel.flow", trace_event_name,
|
||||||
TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), trace_event_name,
|
TRACE_ID_LOCAL(GetTaskTraceID(*pending_task)),
|
||||||
TRACE_ID_LOCAL(GetTaskTraceID(*pending_task)), TRACE_EVENT_FLAG_FLOW_OUT,
|
TRACE_EVENT_FLAG_FLOW_OUT, "task_queue_name",
|
||||||
"task_queue_name", task_queue_name);
|
task_queue_name);
|
||||||
|
|
||||||
DCHECK(!pending_task->task_backtrace[0])
|
DCHECK(!pending_task->task_backtrace[0])
|
||||||
<< "Task backtrace was already set, task posted twice??";
|
<< "Task backtrace was already set, task posted twice??";
|
||||||
@ -98,9 +98,9 @@ void TaskAnnotator::RunTask(const char* trace_event_name,
|
|||||||
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("toplevel.ipc"),
|
TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("toplevel.ipc"),
|
||||||
"TaskAnnotator::RunTask", "ipc_hash", pending_task->ipc_hash);
|
"TaskAnnotator::RunTask", "ipc_hash", pending_task->ipc_hash);
|
||||||
|
|
||||||
TRACE_EVENT_WITH_FLOW0(
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", trace_event_name,
|
||||||
TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), trace_event_name,
|
TRACE_ID_LOCAL(GetTaskTraceID(*pending_task)),
|
||||||
TRACE_ID_LOCAL(GetTaskTraceID(*pending_task)), TRACE_EVENT_FLAG_FLOW_IN);
|
TRACE_EVENT_FLAG_FLOW_IN);
|
||||||
|
|
||||||
// Before running the task, store the IPC context and the task backtrace with
|
// Before running the task, store the IPC context and the task backtrace with
|
||||||
// the chain of PostTasks that resulted in this call and deliberately alias it
|
// the chain of PostTasks that resulted in this call and deliberately alias it
|
||||||
|
@ -148,6 +148,7 @@
|
|||||||
X("test_gpu") \
|
X("test_gpu") \
|
||||||
X("test_tracing") \
|
X("test_tracing") \
|
||||||
X("toplevel") \
|
X("toplevel") \
|
||||||
|
X("toplevel.flow") \
|
||||||
X("ui") \
|
X("ui") \
|
||||||
X("v8") \
|
X("v8") \
|
||||||
X("v8.execute") \
|
X("v8.execute") \
|
||||||
@ -223,7 +224,6 @@
|
|||||||
X(TRACE_DISABLED_BY_DEFAULT("SyncFileSystem")) \
|
X(TRACE_DISABLED_BY_DEFAULT("SyncFileSystem")) \
|
||||||
X(TRACE_DISABLED_BY_DEFAULT("system_stats")) \
|
X(TRACE_DISABLED_BY_DEFAULT("system_stats")) \
|
||||||
X(TRACE_DISABLED_BY_DEFAULT("thread_pool_diagnostics")) \
|
X(TRACE_DISABLED_BY_DEFAULT("thread_pool_diagnostics")) \
|
||||||
X(TRACE_DISABLED_BY_DEFAULT("toplevel.flow")) \
|
|
||||||
X(TRACE_DISABLED_BY_DEFAULT("toplevel.ipc")) \
|
X(TRACE_DISABLED_BY_DEFAULT("toplevel.ipc")) \
|
||||||
X(TRACE_DISABLED_BY_DEFAULT("user_action_samples")) \
|
X(TRACE_DISABLED_BY_DEFAULT("user_action_samples")) \
|
||||||
X(TRACE_DISABLED_BY_DEFAULT("v8.compile")) \
|
X(TRACE_DISABLED_BY_DEFAULT("v8.compile")) \
|
||||||
|
@ -38,13 +38,12 @@ const base::FilePath::CharType kAndroidTraceConfigFile[] =
|
|||||||
FILE_PATH_LITERAL("/data/local/chrome-trace-config.json");
|
FILE_PATH_LITERAL("/data/local/chrome-trace-config.json");
|
||||||
|
|
||||||
const char kDefaultStartupCategories[] =
|
const char kDefaultStartupCategories[] =
|
||||||
"startup,browser,toplevel,disabled-by-default-toplevel.flow,ipc,EarlyJava,"
|
"startup,browser,toplevel,toplevel.flow,ipc,EarlyJava,cc,Java,navigation,"
|
||||||
"cc,Java,navigation,loading,gpu,disabled-by-default-cpu_profiler,download_"
|
"loading,gpu,disabled-by-default-cpu_profiler,download_service,-*";
|
||||||
"service,-*";
|
|
||||||
#else
|
#else
|
||||||
const char kDefaultStartupCategories[] =
|
const char kDefaultStartupCategories[] =
|
||||||
"benchmark,toplevel,startup,disabled-by-default-file,disabled-by-default-"
|
"benchmark,toplevel,startup,disabled-by-default-file,toplevel.flow,"
|
||||||
"toplevel.flow,download_service,-*";
|
"download_service,-*";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// String parameters that can be used to parse the trace config file content.
|
// String parameters that can be used to parse the trace config file content.
|
||||||
|
@ -212,9 +212,8 @@ bool ChannelNacl::Send(Message* message) {
|
|||||||
Logging::GetInstance()->OnSendMessage(message_ptr.get());
|
Logging::GetInstance()->OnSendMessage(message_ptr.get());
|
||||||
#endif // BUILDFLAG(IPC_MESSAGE_LOG_ENABLED)
|
#endif // BUILDFLAG(IPC_MESSAGE_LOG_ENABLED)
|
||||||
|
|
||||||
TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "ChannelNacl::Send",
|
||||||
"ChannelNacl::Send", message->header()->flags,
|
message->header()->flags, TRACE_EVENT_FLAG_FLOW_OUT);
|
||||||
TRACE_EVENT_FLAG_FLOW_OUT);
|
|
||||||
output_queue_.push_back(std::move(message_ptr));
|
output_queue_.push_back(std::move(message_ptr));
|
||||||
if (!waiting_connect_)
|
if (!waiting_connect_)
|
||||||
return ProcessOutgoingMessages();
|
return ProcessOutgoingMessages();
|
||||||
|
@ -51,9 +51,8 @@ void MessagePipeReader::Close() {
|
|||||||
|
|
||||||
bool MessagePipeReader::Send(std::unique_ptr<Message> message) {
|
bool MessagePipeReader::Send(std::unique_ptr<Message> message) {
|
||||||
CHECK(message->IsValid());
|
CHECK(message->IsValid());
|
||||||
TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "MessagePipeReader::Send",
|
||||||
"MessagePipeReader::Send", message->flags(),
|
message->flags(), TRACE_EVENT_FLAG_FLOW_OUT);
|
||||||
TRACE_EVENT_FLAG_FLOW_OUT);
|
|
||||||
base::Optional<std::vector<mojo::native::SerializedHandlePtr>> handles;
|
base::Optional<std::vector<mojo::native::SerializedHandlePtr>> handles;
|
||||||
MojoResult result = MOJO_RESULT_OK;
|
MojoResult result = MOJO_RESULT_OK;
|
||||||
result = ChannelMojo::ReadFromMessageAttachmentSet(message.get(), &handles);
|
result = ChannelMojo::ReadFromMessageAttachmentSet(message.get(), &handles);
|
||||||
@ -101,9 +100,8 @@ void MessagePipeReader::Receive(MessageView message_view) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "MessagePipeReader::Receive",
|
||||||
"MessagePipeReader::Receive", message.flags(),
|
message.flags(), TRACE_EVENT_FLAG_FLOW_IN);
|
||||||
TRACE_EVENT_FLAG_FLOW_IN);
|
|
||||||
delegate_->OnMessageReceived(message);
|
delegate_->OnMessageReceived(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -457,7 +457,7 @@ bool SyncChannel::SyncContext::TryToUnblockListener(const Message* msg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
base::WaitableEvent* done_event = deserializers_.back().done_event;
|
base::WaitableEvent* done_event = deserializers_.back().done_event;
|
||||||
TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_FLOW_BEGIN0("toplevel.flow",
|
||||||
"SyncChannel::SyncContext::TryToUnblockListener",
|
"SyncChannel::SyncContext::TryToUnblockListener",
|
||||||
done_event);
|
done_event);
|
||||||
|
|
||||||
@ -522,7 +522,7 @@ void SyncChannel::SyncContext::CancelPendingSends() {
|
|||||||
PendingSyncMessageQueue::iterator iter;
|
PendingSyncMessageQueue::iterator iter;
|
||||||
DVLOG(1) << "Canceling pending sends";
|
DVLOG(1) << "Canceling pending sends";
|
||||||
for (iter = deserializers_.begin(); iter != deserializers_.end(); iter++) {
|
for (iter = deserializers_.begin(); iter != deserializers_.end(); iter++) {
|
||||||
TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_FLOW_BEGIN0("toplevel.flow",
|
||||||
"SyncChannel::SyncContext::CancelPendingSends",
|
"SyncChannel::SyncContext::CancelPendingSends",
|
||||||
iter->done_event);
|
iter->done_event);
|
||||||
iter->done_event->Signal();
|
iter->done_event->Signal();
|
||||||
@ -644,8 +644,8 @@ bool SyncChannel::Send(Message* message) {
|
|||||||
scoped_refptr<mojo::SyncHandleRegistry> registry = sync_handle_registry_;
|
scoped_refptr<mojo::SyncHandleRegistry> registry = sync_handle_registry_;
|
||||||
WaitForReply(registry.get(), context.get(), pump_messages);
|
WaitForReply(registry.get(), context.get(), pump_messages);
|
||||||
|
|
||||||
TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_FLOW_END0("toplevel.flow", "SyncChannel::Send",
|
||||||
"SyncChannel::Send", context->GetSendDoneEvent());
|
context->GetSendDoneEvent());
|
||||||
|
|
||||||
return context->Pop();
|
return context->Pop();
|
||||||
}
|
}
|
||||||
|
@ -81,8 +81,8 @@ bool SyncMessageFilter::Send(Message* message) {
|
|||||||
const bool* stop_flags[] = { &done, &shutdown };
|
const bool* stop_flags[] = { &done, &shutdown };
|
||||||
registry->Wait(stop_flags, 2);
|
registry->Wait(stop_flags, 2);
|
||||||
if (done) {
|
if (done) {
|
||||||
TRACE_EVENT_FLOW_END0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_FLOW_END0("toplevel.flow", "SyncMessageFilter::Send",
|
||||||
"SyncMessageFilter::Send", &done_event);
|
&done_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
registry->UnregisterEvent(shutdown_event_, on_shutdown_callback);
|
registry->UnregisterEvent(shutdown_event_, on_shutdown_callback);
|
||||||
@ -131,7 +131,7 @@ bool SyncMessageFilter::OnMessageReceived(const Message& message) {
|
|||||||
(*iter)->send_result =
|
(*iter)->send_result =
|
||||||
(*iter)->deserializer->SerializeOutputParameters(message);
|
(*iter)->deserializer->SerializeOutputParameters(message);
|
||||||
}
|
}
|
||||||
TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_FLOW_BEGIN0("toplevel.flow",
|
||||||
"SyncMessageFilter::OnMessageReceived",
|
"SyncMessageFilter::OnMessageReceived",
|
||||||
(*iter)->done_event);
|
(*iter)->done_event);
|
||||||
(*iter)->done_event->Signal();
|
(*iter)->done_event->Signal();
|
||||||
@ -169,7 +169,7 @@ void SyncMessageFilter::SignalAllEvents() {
|
|||||||
lock_.AssertAcquired();
|
lock_.AssertAcquired();
|
||||||
for (PendingSyncMessages::iterator iter = pending_sync_messages_.begin();
|
for (PendingSyncMessages::iterator iter = pending_sync_messages_.begin();
|
||||||
iter != pending_sync_messages_.end(); ++iter) {
|
iter != pending_sync_messages_.end(); ++iter) {
|
||||||
TRACE_EVENT_FLOW_BEGIN0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_FLOW_BEGIN0("toplevel.flow",
|
||||||
"SyncMessageFilter::SignalAllEvents",
|
"SyncMessageFilter::SignalAllEvents",
|
||||||
(*iter)->done_event);
|
(*iter)->done_event);
|
||||||
(*iter)->done_event->Signal();
|
(*iter)->done_event->Signal();
|
||||||
|
@ -380,9 +380,8 @@ MojoResult MessagePipeDispatcher::CloseNoLock() {
|
|||||||
base::AutoUnlock unlock(signal_lock_);
|
base::AutoUnlock unlock(signal_lock_);
|
||||||
node_controller_->ClosePort(port_);
|
node_controller_->ClosePort(port_);
|
||||||
|
|
||||||
TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "MessagePipe closing",
|
||||||
"MessagePipe closing", pipe_id_ + endpoint_,
|
pipe_id_ + endpoint_, TRACE_EVENT_FLAG_FLOW_OUT);
|
||||||
TRACE_EVENT_FLAG_FLOW_OUT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return MOJO_RESULT_OK;
|
return MOJO_RESULT_OK;
|
||||||
@ -433,9 +432,9 @@ HandleSignalsState MessagePipeDispatcher::GetHandleSignalsStateNoLock() const {
|
|||||||
rv.satisfied_signals & MOJO_HANDLE_SIGNAL_PEER_CLOSED;
|
rv.satisfied_signals & MOJO_HANDLE_SIGNAL_PEER_CLOSED;
|
||||||
last_known_satisfied_signals_ = rv.satisfied_signals;
|
last_known_satisfied_signals_ = rv.satisfied_signals;
|
||||||
if (is_peer_closed && !was_peer_closed) {
|
if (is_peer_closed && !was_peer_closed) {
|
||||||
TRACE_EVENT_WITH_FLOW0(
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "MessagePipe peer closed",
|
||||||
TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "MessagePipe peer closed",
|
pipe_id_ + (1 - endpoint_),
|
||||||
pipe_id_ + (1 - endpoint_), TRACE_EVENT_FLAG_FLOW_IN);
|
TRACE_EVENT_FLAG_FLOW_IN);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -505,9 +505,9 @@ bool Connector::DispatchMessage(Message message) {
|
|||||||
incoming_serialization_mode_);
|
incoming_serialization_mode_);
|
||||||
}
|
}
|
||||||
|
|
||||||
TRACE_EVENT_WITH_FLOW0(
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "mojo::Message Receive",
|
||||||
TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "mojo::Message Receive",
|
MANGLE_MESSAGE_ID(message.header()->trace_id),
|
||||||
MANGLE_MESSAGE_ID(message.header()->trace_id), TRACE_EVENT_FLAG_FLOW_IN);
|
TRACE_EVENT_FLAG_FLOW_IN);
|
||||||
#if !BUILDFLAG(MOJO_TRACE_ENABLED)
|
#if !BUILDFLAG(MOJO_TRACE_ENABLED)
|
||||||
// This emits just full class name, and is inferior to mojo tracing.
|
// This emits just full class name, and is inferior to mojo tracing.
|
||||||
TRACE_EVENT0("mojom", heap_profiler_tag_);
|
TRACE_EVENT0("mojom", heap_profiler_tag_);
|
||||||
|
@ -102,8 +102,8 @@ void CreateSerializedMessageObject(uint32_t name,
|
|||||||
std::vector<ScopedHandle>* handles,
|
std::vector<ScopedHandle>* handles,
|
||||||
ScopedMessageHandle* out_handle,
|
ScopedMessageHandle* out_handle,
|
||||||
internal::Buffer* out_buffer) {
|
internal::Buffer* out_buffer) {
|
||||||
TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "mojo::Message Send",
|
||||||
"mojo::Message Send", MANGLE_MESSAGE_ID(trace_id),
|
MANGLE_MESSAGE_ID(trace_id),
|
||||||
TRACE_EVENT_FLAG_FLOW_OUT);
|
TRACE_EVENT_FLAG_FLOW_OUT);
|
||||||
|
|
||||||
ScopedMessageHandle handle;
|
ScopedMessageHandle handle;
|
||||||
@ -148,8 +148,8 @@ void SerializeUnserializedContext(MojoMessageHandle message,
|
|||||||
reinterpret_cast<internal::UnserializedMessageContext*>(context_value);
|
reinterpret_cast<internal::UnserializedMessageContext*>(context_value);
|
||||||
uint32_t trace_id = GetTraceId(context);
|
uint32_t trace_id = GetTraceId(context);
|
||||||
|
|
||||||
TRACE_EVENT_WITH_FLOW0(TRACE_DISABLED_BY_DEFAULT("toplevel.flow"),
|
TRACE_EVENT_WITH_FLOW0("toplevel.flow", "mojo::Message Send",
|
||||||
"mojo::Message Send", MANGLE_MESSAGE_ID(trace_id),
|
MANGLE_MESSAGE_ID(trace_id),
|
||||||
TRACE_EVENT_FLAG_FLOW_OUT);
|
TRACE_EVENT_FLAG_FLOW_OUT);
|
||||||
|
|
||||||
void* buffer;
|
void* buffer;
|
||||||
|
@ -96,8 +96,7 @@ const WhitelistEntry kEventArgsWhitelist[] = {
|
|||||||
{"ui", "RenderTextHarfBuzz::GetFallbackFonts",
|
{"ui", "RenderTextHarfBuzz::GetFallbackFonts",
|
||||||
kGetFallbackFontsAllowedArgs},
|
kGetFallbackFontsAllowedArgs},
|
||||||
{TRACE_DISABLED_BY_DEFAULT("user_action_samples"), "UserAction", nullptr},
|
{TRACE_DISABLED_BY_DEFAULT("user_action_samples"), "UserAction", nullptr},
|
||||||
{TRACE_DISABLED_BY_DEFAULT("toplevel.flow"), "SequenceManager::PostTask",
|
{"toplevel.flow", "SequenceManager::PostTask", kTopLevelFlowAllowedArgs},
|
||||||
kTopLevelFlowAllowedArgs},
|
|
||||||
{TRACE_DISABLED_BY_DEFAULT("lifecycles"), "task_posted_to_disabled_queue",
|
{TRACE_DISABLED_BY_DEFAULT("lifecycles"), "task_posted_to_disabled_queue",
|
||||||
kLifecyclesTaskPostedAllowedArgs},
|
kLifecyclesTaskPostedAllowedArgs},
|
||||||
{nullptr, nullptr, nullptr}};
|
{nullptr, nullptr, nullptr}};
|
||||||
|
Reference in New Issue
Block a user