Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
PlinqEtwProvider.cs
Go to the documentation of this file.
4
6
7[EventSource(Name = "System.Linq.Parallel.PlinqEventSource", Guid = "159eeeec-4a14-4418-a8fe-faabcd987887")]
8internal sealed class PlinqEtwProvider : EventSource
9{
10 public static class Tasks
11 {
12 public const EventTask Query = (EventTask)1;
13
14 public const EventTask ForkJoin = (EventTask)2;
15 }
16
17 internal static PlinqEtwProvider Log = new PlinqEtwProvider();
18
19 private static readonly int s_defaultSchedulerId = TaskScheduler.Default.Id;
20
21 private static int s_queryId;
22
24 {
25 }
26
27 [NonEvent]
28 internal static int NextQueryId()
29 {
31 }
32
33 [NonEvent]
34 internal void ParallelQueryBegin(int queryId)
35 {
36 if (IsEnabled(EventLevel.Informational, EventKeywords.All))
37 {
38 int valueOrDefault = Task.CurrentId.GetValueOrDefault();
39 ParallelQueryBegin(s_defaultSchedulerId, valueOrDefault, queryId);
40 }
41 }
42
43 [Event(1, Level = EventLevel.Informational, Task = (EventTask)1, Opcode = EventOpcode.Start)]
44 private void ParallelQueryBegin(int taskSchedulerId, int taskId, int queryId)
45 {
46 WriteEvent(1, taskSchedulerId, taskId, queryId);
47 }
48
49 [NonEvent]
50 internal void ParallelQueryEnd(int queryId)
51 {
52 if (IsEnabled(EventLevel.Informational, EventKeywords.All))
53 {
54 int valueOrDefault = Task.CurrentId.GetValueOrDefault();
55 ParallelQueryEnd(s_defaultSchedulerId, valueOrDefault, queryId);
56 }
57 }
58
59 [Event(2, Level = EventLevel.Informational, Task = (EventTask)1, Opcode = EventOpcode.Stop)]
60 private void ParallelQueryEnd(int taskSchedulerId, int taskId, int queryId)
61 {
62 WriteEvent(2, taskSchedulerId, taskId, queryId);
63 }
64
65 [NonEvent]
66 internal void ParallelQueryFork(int queryId)
67 {
68 if (IsEnabled(EventLevel.Verbose, EventKeywords.All))
69 {
70 int valueOrDefault = Task.CurrentId.GetValueOrDefault();
71 ParallelQueryFork(s_defaultSchedulerId, valueOrDefault, queryId);
72 }
73 }
74
75 [Event(3, Level = EventLevel.Verbose, Task = (EventTask)2, Opcode = EventOpcode.Start)]
76 private void ParallelQueryFork(int taskSchedulerId, int taskId, int queryId)
77 {
78 WriteEvent(3, taskSchedulerId, taskId, queryId);
79 }
80
81 [NonEvent]
82 internal void ParallelQueryJoin(int queryId)
83 {
84 if (IsEnabled(EventLevel.Verbose, EventKeywords.All))
85 {
86 int valueOrDefault = Task.CurrentId.GetValueOrDefault();
87 ParallelQueryJoin(s_defaultSchedulerId, valueOrDefault, queryId);
88 }
89 }
90
91 [Event(4, Level = EventLevel.Verbose, Task = (EventTask)2, Opcode = EventOpcode.Stop)]
92 private void ParallelQueryJoin(int taskSchedulerId, int taskId, int queryId)
93 {
94 WriteEvent(4, taskSchedulerId, taskId, queryId);
95 }
96}
unsafe void WriteEvent(int eventId)
void ParallelQueryEnd(int taskSchedulerId, int taskId, int queryId)
void ParallelQueryFork(int taskSchedulerId, int taskId, int queryId)
void ParallelQueryBegin(int taskSchedulerId, int taskId, int queryId)
void ParallelQueryJoin(int taskSchedulerId, int taskId, int queryId)
static int Increment(ref int location)
static ? int CurrentId
Definition Task.cs:1009