L
LOSTISLAND
Guest
Bok svima, ja sam mislio da je samo razlika između mutex i semafor su računati (Semaphore sposobnosti) i prioritet inverzija (mutex sposobnosti). Danas sam naišao nešto čudno što možda se odnosi na sposobnost prvenstva inverzije ili nešto drugo. Dobivanje i objavljivanju mutex ili Semaphores između različitih zadataka je jasno, ali kad sam ih koristiti u samo jedan zadatak, njihovo ponašanje je drugačiji. Korištenje semafor zadatak je zaključan, ali pomoću mutex zadatak nije zaključana. Zamislite tu je samo jedan zadatak zove APP_TestTask
Je li to nešto prirodno ili bug? Hvala naprednih
Code:
__task void APP_TestTask (void) {for (; ;) {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 (void) {za (; ;) {os_dly_wait (20); os_mut_wait (Mut_Test, 0xffff); os_mut_release (Mut_Test); os_mut_wait ( Mut_Test, 0xffff); os_mut_wait (Mut_Test, 0xffff); Test_Function ();}}