зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1559220 - Special case IndexedDB threads in wakeup telemetry, r=erahm
The approach isn't perhaps super elegant, but it is a small and simple tweak. Differential Revision: https://phabricator.services.mozilla.com/D34923 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
936159f4b1
Коммит
c6b69378d0
|
@ -11170,6 +11170,8 @@ bool ConnectionPool::ScheduleTransaction(TransactionInfo* aTransactionInfo,
|
||||||
nsresult rv = NS_NewNamedThread(runnable->GetThreadName(),
|
nsresult rv = NS_NewNamedThread(runnable->GetThreadName(),
|
||||||
getter_AddRefs(newThread), runnable);
|
getter_AddRefs(newThread), runnable);
|
||||||
if (NS_SUCCEEDED(rv)) {
|
if (NS_SUCCEEDED(rv)) {
|
||||||
|
newThread->SetNameForWakeupTelemetry(
|
||||||
|
NS_LITERAL_CSTRING("IndexedDB (all)"));
|
||||||
MOZ_ASSERT(newThread);
|
MOZ_ASSERT(newThread);
|
||||||
|
|
||||||
IDB_DEBUG_LOG(("ConnectionPool created thread %" PRIu32,
|
IDB_DEBUG_LOG(("ConnectionPool created thread %" PRIu32,
|
||||||
|
|
|
@ -445,6 +445,11 @@ LazyIdleThread::GetLastLongNonIdleTaskEnd(TimeStamp* _retval) {
|
||||||
return NS_ERROR_NOT_IMPLEMENTED;
|
return NS_ERROR_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
LazyIdleThread::SetNameForWakeupTelemetry(const nsACString& aName) {
|
||||||
|
return NS_ERROR_NOT_IMPLEMENTED;
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
LazyIdleThread::AsyncShutdown() {
|
LazyIdleThread::AsyncShutdown() {
|
||||||
ASSERT_OWNING_THREAD();
|
ASSERT_OWNING_THREAD();
|
||||||
|
|
|
@ -176,4 +176,6 @@ interface nsIThread : nsISerialEventTarget
|
||||||
*/
|
*/
|
||||||
[noscript] readonly attribute TimeStamp lastLongTaskEnd;
|
[noscript] readonly attribute TimeStamp lastLongTaskEnd;
|
||||||
[noscript] readonly attribute TimeStamp lastLongNonIdleTaskEnd;
|
[noscript] readonly attribute TimeStamp lastLongNonIdleTaskEnd;
|
||||||
|
|
||||||
|
[noscript] void setNameForWakeupTelemetry(in ACString name);
|
||||||
};
|
};
|
||||||
|
|
|
@ -779,6 +779,14 @@ nsThread::GetLastLongNonIdleTaskEnd(TimeStamp* _retval) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
nsThread::SetNameForWakeupTelemetry(const nsACString& aName) {
|
||||||
|
#ifdef EARLY_BETA_OR_EARLIER
|
||||||
|
mNameForWakeupTelemetry = aName;
|
||||||
|
#endif
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsThread::AsyncShutdown() {
|
nsThread::AsyncShutdown() {
|
||||||
LOG(("THRD(%p) async shutdown\n", this));
|
LOG(("THRD(%p) async shutdown\n", this));
|
||||||
|
@ -1137,7 +1145,9 @@ nsThread::ProcessNextEvent(bool aMayWait, bool* aResult) {
|
||||||
if (ms < 0) {
|
if (ms < 0) {
|
||||||
ms = 0;
|
ms = 0;
|
||||||
}
|
}
|
||||||
const char* name = PR_GetThreadName(mThread);
|
const char* name = !mNameForWakeupTelemetry.IsEmpty()
|
||||||
|
? mNameForWakeupTelemetry.get()
|
||||||
|
: PR_GetThreadName(mThread);
|
||||||
if (!name) {
|
if (!name) {
|
||||||
name = IsMainThread() ? "MainThread" : "(nameless thread)";
|
name = IsMainThread() ? "MainThread" : "(nameless thread)";
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,6 +245,7 @@ class nsThread : public nsIThreadInternal,
|
||||||
mozilla::TimeStamp mNextIdleDeadline;
|
mozilla::TimeStamp mNextIdleDeadline;
|
||||||
|
|
||||||
#ifdef EARLY_BETA_OR_EARLIER
|
#ifdef EARLY_BETA_OR_EARLIER
|
||||||
|
nsCString mNameForWakeupTelemetry;
|
||||||
mozilla::TimeStamp mLastWakeupCheckTime;
|
mozilla::TimeStamp mLastWakeupCheckTime;
|
||||||
uint32_t mWakeupCount = 0;
|
uint32_t mWakeupCount = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
Загрузка…
Ссылка в новой задаче