Based on the principle of protothread event-driven pseudo task