/haiku/src/system/kernel/fs/ |
H A D | Vnode.cpp | 32 LockWaiter waiter; local 33 waiter.thread = thread_get_current_thread(); 34 waiter.vnode = this; 50 bucket.waiters.Add(&waiter); 51 thread_prepare_to_block(waiter.thread, 0, THREAD_BLOCK_TYPE_OTHER, 69 // get the first waiter from the list 70 LockWaiter* waiter = NULL; local 75 if (waiter != NULL) { 79 waiter = someWaiter; 84 ASSERT(waiter ! [all...] |
/haiku/src/system/libroot/os/locks/ |
H A D | rw_lock.cpp | 25 rw_lock_waiter waiter; local 26 waiter.thread = find_thread(NULL); 27 waiter.next = NULL; 28 waiter.writer = writer; 31 lock->last_waiter->next = &waiter; 33 lock->waiters = &waiter; 35 lock->last_waiter = &waiter; 59 rw_lock_waiter *waiter = lock->waiters; 60 if (waiter == NULL) 63 if (waiter 106 rw_lock_waiter *waiter = lock->waiters; local [all...] |
/haiku/src/kits/shared/ |
H A D | RWLockManager.cpp | 182 // enqueue a waiter 183 RWLockable::Waiter waiter(writer); 184 lockable->fWaiters.Add(&waiter); 185 waiter.queued = true; 201 if (!waiter.queued) 202 return waiter.status; 206 lockable->fWaiters.Remove(&waiter); 219 RWLockable::Waiter* waiter = lockable->fWaiters.Head(); local 220 if (waiter == NULL || lockable->fOwner >= 0) 224 if (waiter [all...] |
/haiku/src/system/kernel/vm/ |
H A D | VMArea.cpp | 108 VMAreaUnwiredWaiter* waiter = it.Next();) { 109 waiter->condition.NotifyAll(); 141 /*! If the area has any wired range, the given waiter is added to the range and 144 \return \c true, if the waiter has been added, \c false otherwise. 147 VMArea::AddWaiterIfWired(VMAreaUnwiredWaiter* waiter) argument 153 waiter->area = this; 154 waiter->base = fBase; 155 waiter->size = fSize; 156 waiter->condition.Init(this, "area unwired"); 157 waiter 177 AddWaiterIfWired(VMAreaUnwiredWaiter* waiter, addr_t base, size_t size, uint32 flags) argument [all...] |
H A D | VMCache.cpp | 947 PageEventWaiter waiter; local 948 waiter.thread = thread_get_current_thread(); 949 waiter.next = fPageEventWaiters; 950 waiter.page = page; 951 waiter.events = events; 953 fPageEventWaiters = &waiter; 955 thread_prepare_to_block(waiter.thread, 0, THREAD_BLOCK_TYPE_OTHER_OBJECT, page); 1506 while (PageEventWaiter* waiter = *it) { 1507 if (waiter->page == page && (waiter [all...] |
H A D | vm_page.cpp | 1167 PageReservationWaiter* waiter = it.Next();) { 1169 ", don't touch: %6" B_PRIu32 "\n", waiter->thread->id, 1170 waiter->missing, waiter->dontTouch); 1493 while (PageReservationWaiter* waiter = sPageReservationWaiters.Head()) { 1494 int32 reserved = reserve_some_pages(waiter->missing, 1495 waiter->dontTouch); 1500 waiter->missing -= reserved; 1502 if (waiter->missing > 0) 1505 sPageReservationWaiters.Remove(waiter); 3078 PageReservationWaiter waiter; local [all...] |
H A D | vm.cpp | 1202 VMAreaUnwiredWaiter waiter; local 1203 if (!area->AddWaiterIfWired(&waiter)) 1212 waiter.waitEntry.Wait(); 1245 VMAreaUnwiredWaiter waiter; local 1246 if (!area->AddWaiterIfWired(&waiter, base, size)) 1255 waiter.waitEntry.Wait(); 5013 VMAreaUnwiredWaiter waiter; local 5014 if (area->AddWaiterIfWired(&waiter, address, B_PAGE_SIZE, 5029 waiter.waitEntry.Wait();
|
/haiku/src/system/kernel/locks/ |
H A D | lock.cpp | 278 mutex_waiter* waiter = lock->lock.waiters; local 279 while (waiter != NULL) { 280 kprintf(" %" B_PRId32, waiter->thread->id); 281 waiter = waiter->next; 295 // enqueue in waiter list 296 rw_lock_waiter waiter; local 297 waiter.thread = thread_get_current_thread(); 298 waiter.next = NULL; 299 waiter 324 rw_lock_waiter* waiter = lock->waiters; local 600 rw_lock_waiter waiter; local 815 rw_lock_waiter* waiter = lock->waiters; local 996 mutex_waiter waiter; local 1035 mutex_waiter* waiter = lock->waiters; local 1112 mutex_waiter waiter; local 1206 mutex_waiter* waiter = lock->waiters; local [all...] |
H A D | user_mutex.cpp | 28 * The mutex's "waiting" state is controlled by the rw_lock: a waiter acquires 332 ConditionVariableEntry waiter; 333 entry->condition.Add(&waiter); 336 return waiter.Wait(flags, timeout); 562 ConditionVariableEntry waiter; 570 toEntry->condition.Add(&waiter); 585 error = waiter.Wait(toFlags, timeout);
|
/haiku/src/tests/add-ons/kernel/kernelland_emu/ |
H A D | lock.cpp | 199 // enqueue in waiter list 200 rw_lock_waiter waiter; local 201 waiter.thread = get_current_thread(); 202 waiter.next = NULL; 203 waiter.writer = writer; 206 lock->waiters->last->next = &waiter; 208 lock->waiters = &waiter; 210 lock->waiters->last = &waiter; 230 rw_lock_waiter* waiter = lock->waiters; local 231 if (waiter 401 rw_lock_waiter waiter; local 703 mutex_waiter waiter; local 753 mutex_waiter* waiter = lock->waiters; local [all...] |
/haiku/src/system/libroot/posix/pthread/ |
H A D | pthread_rwlock.cpp | 197 Waiter waiter(writer); 198 waiters.Add(&waiter); 199 waiter.queued = true; 200 waiter.userThread->wait_status = 1; 209 if (!waiter.queued) 210 return waiter.status; 214 waiters.Remove(&waiter); 228 Waiter* waiter = waiters.Head(); local 229 if (waiter == NULL || owner >= 0) 233 if (waiter [all...] |
/haiku/headers/private/kernel/vm/ |
H A D | VMArea.h | 144 bool AddWaiterIfWired(VMAreaUnwiredWaiter* waiter); 145 bool AddWaiterIfWired(VMAreaUnwiredWaiter* waiter,
|