rem: ReleaseSemaphore(&iounit->ListLock);
add: ReleaseSemaphore(&iounit->Lock);
context: RethinkPlayers ( struct AHIDevUnit *iounit,                 struct AHIBase *AHIBase ){  struct MinList templist;  struct AHIRequest *ioreq;  NewList((struct List *) &templist);  ObtainSemaphore(&iounit->ListLock);  RemPlayers((struct List *) &iounit->PlayingList, iounit, AHIBase);  RemPlayers((struct List *) &iounit->SilentList, iounit, AHIBase);  // Move all silent requests to our temporary list  while((ioreq = (struct AHIRequest *) RemHead((struct List *) &iounit->SilentList)))  {    AddTail((struct List *) &templist, (struct Node *) ioreq);  }  // And add them back...  while((ioreq = (struct AHIRequest *) RemHead((struct List *) &templist)))  {    AddWriter(ioreq, iounit, AHIBase);  }  ReleaseSemaphore(&iounit->ListLock);}