**
RT-Thread之rt_sem_control()
**
rt_err_t rt_sem_control(rt_sem_t sem, int cmd, void *arg)
rt_sem_release释放信号量后会将挂起在sem_ack上的线程唤醒并重新调度,rt_sem_control是有可能等下次该线程运行时才会被执行的。在rt_sem_release后使用rt_sem_control的目的是因为在某些应用中必须rt_sem_take和rt_sem_release依次出现,而不允许rt_sem_release被连续多次调用,一旦出现这种情况会被认为是出现了异常,通过调用rt_sem_control接口来重新初始化sem_ack,恢复异常。
参考自RT-Thread论坛:https://www.rt-thread.org/qa/thread-1220-1-1.html