vinifr

sys_sem_free

Mar 26th, 2015
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.58 KB | None | 0 0
  1. /**
  2.  * Destroys a semaphore.
  3.  *
  4.  * @param sem is the semaphore to be destroyed.
  5.  */
  6. void
  7. sys_sem_free(sys_sem_t *sem)
  8. {
  9.     u32_t i;
  10.  
  11.       /* Find a semaphore that is in use. */
  12.       for(i = 0; i < SYS_SEM_MAX; i++) {
  13.         if(sems[i].queue == sem->queue) {
  14.           break;
  15.         }
  16.       }
  17.  
  18.     /* Delete Sem , By Jin */
  19.       vQueueDelete(sem->queue);
  20.  
  21.       /* Clear the queue handle. */
  22.       sem->queue = 0;
  23.       /* Clear the queue handle in global array. */
  24.       sems[i].queue = 0;
  25.  
  26.       /* Update the semaphore statistics. */
  27.     #if SYS_STATS
  28.       STATS_DEC(sys.sem.used);
  29.     #endif /* SYS_STATS */
  30. }
Add Comment
Please, Sign In to add comment