- *observation:* the compiler is allowed to unroll loops as it sees them.
- *observation:* the variables `mutex`, `indicator`, `count` have common linkage.
- *conclusion:* omitting `volatile` here works because the compiler has to assume that `mutex_unlock_and_sleep()` changes these variables. The compiler does not have clear knowledge if it does, because the function is defined in another compiling unit.
- *conclusion:* this will nevertheless break if link-time-optimization is enabled for RIOT some day. So please make `indicator` and `count` `static volatile`, and `mutex`, `stack` and `second_thread` `static`. (Always make every global variables and function `static` unless they are shared amongst compiling units.)