gecko-dev/toolkit/crashreporter/ThreadAnnotation.h
Haik Aftandilian f1616d626a Bug 1457501 - Part 1 - Mac Crash deadlock triggered by CrashReporter::GetFlatThreadAnnotation() lock acquisition r=gsvelto
MozReview-Commit-ID: BxIUqco6oiV

--HG--
extra : rebase_source : f60d5ecbe44fc61afd714762e8d1aea470c397b8
2018-04-24 15:59:15 -07:00

41 lines
861 B
C++

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef ThreadAnnotation_h
#define ThreadAnnotation_h
#include <functional>
#include "nsExceptionHandler.h"
// Thread annotation interfaces for the crash reporter.
namespace CrashReporter {
void InitThreadAnnotation();
void ShutdownThreadAnnotation();
void GetFlatThreadAnnotation(const std::function<void(const char*)>& aCallback,
bool aIsHandlingException=false);
class InitThreadAnnotationRAII {
public:
InitThreadAnnotationRAII()
{
if (GetEnabled()) {
InitThreadAnnotation();
}
}
~InitThreadAnnotationRAII() {
if (GetEnabled()) {
ShutdownThreadAnnotation();
}
}
};
}
#endif