Skip to content

Commit b3ef729

Browse files
committed
[fiber] Hide manual stack watermarking to avoid misuse
1 parent 276be00 commit b3ef729

File tree

3 files changed

+10
-23
lines changed

3 files changed

+10
-23
lines changed

examples/generic/fiber/main.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,10 @@ main()
9090
MODM_LOG_INFO << "Starting fiber modm::yield benchmark..." << modm::endl;
9191
MODM_LOG_INFO.flush();
9292

93-
fiber_y1.stack_watermark();
94-
fiber_y2.stack_watermark();
9593
// fiber_y1, fiber_y2 were autostarted
9694
{
9795
modm::atomic::Lock l;
98-
modm::fiber::Scheduler::run();
96+
modm::fiber::Scheduler::run(modm::fiber::Scheduler::AutoWatermark);
9997
}
10098

10199
MODM_LOG_INFO << "Y1 stack usage: = " << fiber_y1.stack_usage() << modm::endl;
@@ -125,10 +123,8 @@ main()
125123
MODM_LOG_INFO << "F3 stack usage = " << fiber3.stack_usage() << modm::endl;
126124
MODM_LOG_INFO << "F4 stack usage = " << fiber4.stack_usage() << modm::endl;
127125

128-
fiber_ping.stack_watermark();
129-
fiber_pong.stack_watermark();
130126
fiber_ping.start();
131-
modm::fiber::Scheduler::run();
127+
modm::fiber::Scheduler::run(modm::fiber::Scheduler::AutoWatermark);
132128

133129
while(1) ;
134130
return 0;

examples/nucleo_g071rb/amnb/main.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,7 @@ main()
137137
USART4->CR3 = USART_CR3_HDSEL;
138138
USART4->CR1 |= USART_CR1_UE;
139139

140-
fiberNode1t.stack_watermark();
141-
fiberNode1r.stack_watermark();
142-
fiberNode2t.stack_watermark();
143-
fiberNode2r.stack_watermark();
144-
fiberNode3t.stack_watermark();
145-
fiberNode3r.stack_watermark();
146-
147-
modm::fiber::Scheduler::run();
140+
modm::fiber::Scheduler::run(modm::fiber::Scheduler::AutoWatermark);
148141

149142
return 0;
150143
}

src/modm/processing/fiber/task.hpp

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,6 @@ class Task
125125
return stop.request_stop();
126126
}
127127

128-
129-
/// Watermarks the stack to measure `stack_usage()` later.
130-
/// @see `modm_context_stack_watermark()`.
131-
void inline
132-
stack_watermark()
133-
{
134-
modm_context_stack_watermark(&ctx);
135-
}
136-
137128
/// @returns the stack usage as measured by a watermark level.
138129
/// @see `modm_context_stack_usage()`.
139130
[[nodiscard]] size_t inline
@@ -163,6 +154,13 @@ class Task
163154
}
164155

165156
/// @cond
157+
// Always use Scheduler::run(Scheduler::AutoWatermark) instead!
158+
// For performance sensitive use cases you may call this function manually.
159+
void inline
160+
stack_watermark()
161+
{
162+
modm_context_stack_watermark(&ctx);
163+
}
166164
// DEPRECATE: 2025q4
167165
[[deprecated("Use `stack_watermark()` instead!")]]
168166
void inline watermark_stack() { stack_watermark(); }

0 commit comments

Comments
 (0)