BOOL OMuxWaitSem::addSemaphore(OMuxSem *sema)
{
    SEMRECORD semRec;

    if (!sema) {
        muxwaitState = ERROR_INVALID_PARAMETER;
        return(FALSE);
    }

    semRec.hsemCur = (HSEM) sema->getMuxSemHandle();
    return(addSemaphore(&semRec));
}
void
initGlobals()
{
  // LEAVE THIS STATEMENT
  pthread_mutex_init(&outMutex, NULL);

  // TODO: Complete this function
  maleCount = 0;
  femaleCount = 0;
  sem_init(&male, 0, 1);
  sem_init(&female, 0, 1);
  pthread_mutex_init(&limitMaleMutex, NULL);
  pthread_mutex_init(&limitFemaleMutex, NULL);
  pthread_mutex_init(&maleCountMutex, NULL);
  pthread_mutex_init(&femaleCountMutex, NULL);

  // TODO:  Complete for scheduler
  addLock("limitMaleMutex", &limitMaleMutex);
  addLock("limitFemaleMutex", &limitFemaleMutex);
  addLock("maleCountMutex", &maleCountMutex);
  addLock("femaleCountMutex", &femaleCountMutex);
  addSemaphore("female", SEM_FEMALE_INITIAL, &female);
  addSemaphore("male", SEM_MALE_INITIAL, &male);
}