The task is resumed by another subsystem (I2C in this case). The task can’t resume itself, that was bit too much of simplification (NULLs). I will fix the code.
I just tried to simplify the code. Suspend and resume are not called directly by the worker_task
but by some code executed by the worker_task
. In my case this is a subsystem accessing a temperature sensor on the I2C bus. The worker_task
for instance calls a function ReadPCBTemperature()
which in turn makes calls to suspend and resume.