@@ -17,86 +17,100 @@ static EXECUTOR_REGISTRY: ExecutorRegistry = ExecutorRegistry::new();
1717
1818#[ unsafe( no_mangle) ]
1919fn _embassy_trace_poll_start ( executor_id : u32 ) {
20- let payload = EventPayload :: EmbassyExecutorPollStart {
21- executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
22- } ;
20+ critical_section:: with ( |_| {
21+ let payload = EventPayload :: EmbassyExecutorPollStart {
22+ executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
23+ } ;
2324
24- write_tracing_event ( payload) ;
25+ write_tracing_event ( payload) ;
26+ } ) ;
2527}
2628
2729#[ unsafe( no_mangle) ]
2830fn _embassy_trace_executor_idle ( executor_id : u32 ) {
29- let payload = EventPayload :: EmbassyExecutorIdle {
30- executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
31- } ;
31+ critical_section:: with ( |_| {
32+ let payload = EventPayload :: EmbassyExecutorIdle {
33+ executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
34+ } ;
3235
33- write_tracing_event ( payload) ;
36+ write_tracing_event ( payload) ;
37+ } ) ;
3438}
3539
3640#[ unsafe( no_mangle) ]
3741fn _embassy_trace_task_new ( executor_id : u32 , task_id : u32 ) {
38- let payload = EventPayload :: TypeDefinition ( TypeDefinitionPayload :: EmbassyTaskCreated {
39- task_id : task_id,
40- executor_id_long : executor_id,
41- executor_id_short : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
42+ critical_section:: with ( |_| {
43+ let payload = EventPayload :: TypeDefinition ( TypeDefinitionPayload :: EmbassyTaskCreated {
44+ task_id : task_id,
45+ executor_id_long : executor_id,
46+ executor_id_short : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
47+ } ) ;
48+
49+ write_tracing_event ( payload) ;
4250 } ) ;
43-
44- write_tracing_event ( payload) ;
4551}
4652
4753#[ unsafe( no_mangle) ]
4854fn _embassy_trace_task_end ( executor_id : u32 , task_id : u32 ) {
49- let payload = EventPayload :: TypeDefinition ( TypeDefinitionPayload :: EmbassyTaskEnded {
50- task_id : task_id,
51- executor_id_long : executor_id,
52- executor_id_short : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
55+ critical_section:: with ( |_| {
56+ let payload = EventPayload :: TypeDefinition ( TypeDefinitionPayload :: EmbassyTaskEnded {
57+ task_id : task_id,
58+ executor_id_long : executor_id,
59+ executor_id_short : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
60+ } ) ;
61+
62+ write_tracing_event ( payload) ;
5363 } ) ;
54-
55- write_tracing_event ( payload) ;
5664}
5765
5866#[ unsafe( no_mangle) ]
5967fn _embassy_trace_task_exec_begin ( executor_id : u32 , task_id : u32 ) {
60- let core_id = get_current_core_id ( ) ;
61-
62- let payload = match core_id {
63- 0 => EventPayload :: EmbassyTaskExecBeginCore0 {
64- task_id : compressed_task_id ( task_id) ,
65- executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
66- } ,
67- 1 => EventPayload :: EmbassyTaskExecBeginCore1 {
68- task_id : compressed_task_id ( task_id) ,
69- executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
70- } ,
71- c => unreachable_core_id ( c) ,
72- } ;
73-
74- write_tracing_event ( payload) ;
68+ critical_section:: with ( |_| {
69+ let core_id = get_current_core_id ( ) ;
70+
71+ let payload = match core_id {
72+ 0 => EventPayload :: EmbassyTaskExecBeginCore0 {
73+ task_id : compressed_task_id ( task_id) ,
74+ executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
75+ } ,
76+ 1 => EventPayload :: EmbassyTaskExecBeginCore1 {
77+ task_id : compressed_task_id ( task_id) ,
78+ executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
79+ } ,
80+ c => unreachable_core_id ( c) ,
81+ } ;
82+
83+ write_tracing_event ( payload) ;
84+ } ) ;
7585}
7686
7787#[ unsafe( no_mangle) ]
7888fn _embassy_trace_task_exec_end ( executor_id : u32 , _task_id : u32 ) {
79- let core_id = get_current_core_id ( ) ;
80-
81- let payload = match core_id {
82- 0 => EventPayload :: EmbassyTaskExecEndCore0 {
83- executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
84- } ,
85- 1 => EventPayload :: EmbassyTaskExecEndCore1 {
86- executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
87- } ,
88- c => unreachable_core_id ( c) ,
89- } ;
90-
91- write_tracing_event ( payload) ;
89+ critical_section:: with ( |_| {
90+ let core_id = get_current_core_id ( ) ;
91+
92+ let payload = match core_id {
93+ 0 => EventPayload :: EmbassyTaskExecEndCore0 {
94+ executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
95+ } ,
96+ 1 => EventPayload :: EmbassyTaskExecEndCore1 {
97+ executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
98+ } ,
99+ c => unreachable_core_id ( c) ,
100+ } ;
101+
102+ write_tracing_event ( payload) ;
103+ } ) ;
92104}
93105
94106#[ unsafe( no_mangle) ]
95107fn _embassy_trace_task_ready_begin ( executor_id : u32 , task_id : u32 ) {
96- let payload = EventPayload :: EmbassyTaskReady {
97- task_id : compressed_task_id ( task_id) ,
98- executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
99- } ;
108+ critical_section:: with ( |_| {
109+ let payload = EventPayload :: EmbassyTaskReady {
110+ task_id : compressed_task_id ( task_id) ,
111+ executor_id : EXECUTOR_REGISTRY . lookup_or_register ( executor_id) . unwrap ( ) ,
112+ } ;
100113
101- write_tracing_event ( payload) ;
114+ write_tracing_event ( payload) ;
115+ } ) ;
102116}
0 commit comments