Lines Matching defs:semaphore

84 // Xsi semaphore definition
98 // For some reason the semaphore is getting destroyed.
105 // the semaphore set, it'll just ignore the sem_undo
107 // whole sUndoList. Beside we don't know our semaphore
108 // number nor our semaphore set id.
201 // Xsi semaphore set definition (semid_ds)
224 TRACE(("XsiSemaphoreSet::~XsiSemaphoreSet(): removing semaphore "
343 // for the same semaphore set
370 // semaphore set
475 int fID; // semaphore set id
489 // Xsi semaphore set hash table
624 panic("xsi_sem_init() failed to initialize semaphore hash table\n");
626 mutex_init(&sIpcLock, "global POSIX semaphore IPC table");
638 // By acquiring first the semaphore hash table lock
639 // we make sure the semaphore set in our sem_undo
690 // Check if key already exist, if it does it already has a semaphore
694 // The IPC key exist and it already has a semaphore
704 TRACE(("xsi_semget: calling process has no semaphore, "
710 "on semaphore %d, key %d\n", semaphoreSet->ID(),
717 "one associated with semaphore %d, key %d\n",
739 // Create a new semaphore set for this key
757 "semaphore set\n"));
801 TRACE(("xsi_semctl: semaphore set id %d not valid\n",
807 TRACE(("xsi_semctl: semaphore number %d not valid for "
808 "semaphore %d\n", semaphoreNumber, semaphoreID));
812 // Lock the semaphore set itself and release both the semaphore
824 XsiSemaphore *semaphore = semaphoreSet->Semaphore(semaphoreNumber);
829 "on semaphore %d, key %d\n", semaphoreSet->ID(),
833 result = semaphore->Value();
840 "on semaphore %d, key %d\n", semaphoreSet->ID(),
848 semaphore->SetValue(args.val);
858 "on semaphore %d, key %d\n", semaphoreSet->ID(),
862 result = semaphore->LastPid();
869 "on semaphore %d, key %d\n", semaphoreSet->ID(),
873 result = semaphore->ThreadsWaitingToIncrease();
880 "on semaphore %d, key %d\n", semaphoreSet->ID(),
884 result = semaphore->ThreadsWaitingToBeZero();
891 "permission on semaphore %d, key %d\n", semaphoreSet->ID(),
896 semaphore = semaphoreSet->Semaphore(i);
897 unsigned short value = semaphore->Value();
911 "on semaphore %d, key %d\n", semaphoreSet->ID(),
917 semaphore = semaphoreSet->Semaphore(i);
926 semaphore->SetValue(value);
937 "permission on semaphore %d, key %d\n", semaphoreSet->ID(),
958 "permission on semaphore %d, key %d\n",
975 // the semaphore set hash table lock along with the
976 // ipc hash table lock and the semaphore set lock
981 "permission on semaphore %d, key %d\n",
1038 TRACE(("xsi_semop: semaphore set id %d not valid\n",
1059 // going to sleep. If we must wait on a semaphore, we undo
1066 XsiSemaphore *semaphore = NULL;
1074 TRACE(("xsi_semop: %" B_PRIu32 " invalid semaphore number"
1079 semaphore = semaphoreSet->Semaphore(semaphoreNumber);
1080 unsigned short value = semaphore->Value();
1085 if (semaphore->Add(operation)) {
1105 semaphore->Add(operation);
1114 semaphore = semaphoreSet->Semaphore(semaphoreNumber);
1117 semaphore->Revert(operation);
1130 semaphore->Enqueue(&queueEntry, waitOnZero);
1137 semaphore = NULL;
1147 TRACE(("xsi_semop: semaphore set id %d (sequence = "
1154 "waiting on semaphore set id %d\n", (int)thread_get_current_thread_id(),
1166 TRACE(("xsi_semop: semaphore acquired succesfully\n"));
1167 // We acquired the semaphore, now records the sem_undo
1174 XsiSemaphore *semaphore = semaphoreSet->Semaphore(semaphoreNumber);
1180 // Start with semaphore operations
1183 semaphore = semaphoreSet->Semaphore(semaphoreNumber);
1186 semaphore->Revert(operation);
1205 XsiSemaphore *semaphore = semaphoreSet->Semaphore(semaphoreNumber);
1206 semaphore->SetPid(getpid());