v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
etw-isolate-capture-state-monitor-win.h
Go to the documentation of this file.
1// Copyright 2024 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef V8_DIAGNOSTICS_ETW_ISOLATE_CAPTURE_STATE_MONITOR_WIN_H_
6#define V8_DIAGNOSTICS_ETW_ISOLATE_CAPTURE_STATE_MONITOR_WIN_H_
7
11
12namespace v8 {
13namespace internal {
14namespace ETWJITInterface {
15
17 public:
19 size_t pending_isolate_count);
22 const EtwIsolateCaptureStateMonitor&) = delete;
23
24 // Call from ETW callback thread to wait for the specified time or until
25 // Notify is called pending_isolate_count times.
26 bool WaitFor(const base::TimeDelta& delta);
27
28 // Called from isolate thread to unblock WaitFor.
29 void Notify();
30
31 private:
32 // Must be held prior to calling WaitFor.
33 // Also used to sychronize access when reading/writing the isolate_count_.
37 // Used to track when WaitFor started and how much of the original timeout
38 // remains when recovering from spurious wakeups.
40};
41
42} // namespace ETWJITInterface
43} // namespace internal
44} // namespace v8
45
46#endif // V8_DIAGNOSTICS_ETW_ISOLATE_CAPTURE_STATE_MONITOR_WIN_H_
EtwIsolateCaptureStateMonitor & operator=(const EtwIsolateCaptureStateMonitor &)=delete
EtwIsolateCaptureStateMonitor(const EtwIsolateCaptureStateMonitor &)=delete
base::Mutex mutex
#define V8_EXPORT_PRIVATE
Definition macros.h:460