L
LOSTISLAND
Guest
Hi lahat, naisip ko na ang tanging pagkakaiba sa pagitan ng ng Mutex at isang semaporo ang bilang (semaporo Capability) at priority pagbabaligtad (Mutex Capability). Ngayon, ko na nagkaroon ng isang bagay na kakaiba na marahil ay may kaugnayan sa kakayahan ng pagbabaligtad ng priority o iba pa. Pagkuha at ilalabas ang Mutex o Semaphores sa pagitan ng iba't ibang mga gawain ay malinaw ngunit kapag ginagamit ko ang mga ito sa isang gawain lamang, ang kanilang pag-uugali ay naiiba. Paggamit sa semaporo gawain ay naka-lock ngunit gamit Mutex gawain ay hindi naka-lock. Isipin may lamang ng isang gawain na tinatawag na APP_TestTask
ng isang bagay na natural o ng isang bug? Salamat sa advanced
Code:
__task void APP_TestTask (walang bisa) {para sa (; ;) {os_dly_wait (20); os_sem_wait (Sem_Test, 0xffff); os_sem_send (Sem_Test); os_sem_wait (Sem_Test, 0xffff); os_sem_wait ( Sem_Test, 0xffff); Test_Function ();}}
Code:
_task void APP_TestTask (walang bisa) {para sa (; ;) {os_dly_wait (20); os_mut_wait (Mut_Test, 0xffff); ng os_mut_release (Mut_Test); os_mut_wait ( ba ito ng Mut_Test, 0xffff); os_mut_wait (Mut_Test, 0xffff); Test_Function ();}}