生活随笔
收集整理的這篇文章主要介紹了
互斥信号量的删除与状态查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
1 互斥信號量的刪除與狀態查詢
互斥信號量的刪除:
狀態查詢:
uint32_t tMutexDestroy
(tMutex
* mutex
)
{uint32_t count
= 0;uint32_t status
= tTaskEnterCritical();if (mutex
->lockedCount
> 0){if (mutex
->ownerOriginalPrio
!= mutex
->owner
->prio
){if (mutex
->owner
->state
== TINYOS_TASK_STATE_RDY
){tTaskSchedUnRdy(mutex
->owner
);mutex
->owner
->prio
= mutex
->ownerOriginalPrio
;tTaskSchedRdy(mutex
->owner
);}else{mutex
->owner
->prio
= mutex
->ownerOriginalPrio
;}}count
= tEventRemoveAll(&mutex
->event
, (void *)0, tErrorDel
);if (count
> 0){tTaskSched();}}tTaskExitCritical(status
);return count
;
}
void tMutexGetInfo
(tMutex
* mutex
, tMutexInfo
* info
)
{uint32_t status
= tTaskEnterCritical();info
->taskCount
= tEventWaitCount(&mutex
->event
);info
->ownerPrio
= mutex
->ownerOriginalPrio
;if (mutex
->owner
!= (tTask
*)0){info
->inheritedPrio
= mutex
->owner
->prio
;}else{info
->inheritedPrio
= TINYOS_PRO_COUNT
;}info
->owner
= mutex
->owner
;info
->lockedCount
= mutex
->lockedCount
;tTaskExitCritical(status
);
}
參考資料:
【李述銅】從0到1自己動手寫嵌入式操作系統
總結
以上是生活随笔為你收集整理的互斥信号量的删除与状态查询的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。