Wait states should be interruptable.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24887 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2008-04-10 05:01:21 +00:00
parent 9c796e6e71
commit 875757adef

View File

@ -300,8 +300,8 @@ UnixFifo::_Read(Request& request, size_t numBytes, bigtime_t timeout,
while (fReaders.Head() != &request && !IsReadShutdown()) {
benaphore_unlock(&fLock);
status_t error = acquire_sem_etc(fReaderSem, 1, B_ABSOLUTE_TIMEOUT,
timeout);
status_t error = acquire_sem_etc(fReaderSem, 1,
B_ABSOLUTE_TIMEOUT | B_CAN_INTERRUPT, timeout);
benaphore_lock(&fLock);
@ -319,8 +319,8 @@ UnixFifo::_Read(Request& request, size_t numBytes, bigtime_t timeout,
while (fBuffer.Readable() == 0 && !IsReadShutdown()) {
benaphore_unlock(&fLock);
status_t error = acquire_sem_etc(fReaderSem, 1, B_ABSOLUTE_TIMEOUT,
timeout);
status_t error = acquire_sem_etc(fReaderSem, 1,
B_ABSOLUTE_TIMEOUT | B_CAN_INTERRUPT, timeout);
benaphore_lock(&fLock);
@ -345,8 +345,8 @@ UnixFifo::_Write(Request& request, net_buffer* buffer, bigtime_t timeout)
while (fWriters.Head() != &request && !IsWriteShutdown()) {
benaphore_unlock(&fLock);
status_t error = acquire_sem_etc(fWriterSem, 1, B_ABSOLUTE_TIMEOUT,
timeout);
status_t error = acquire_sem_etc(fWriterSem, 1,
B_ABSOLUTE_TIMEOUT | B_CAN_INTERRUPT, timeout);
benaphore_lock(&fLock);
@ -364,8 +364,8 @@ UnixFifo::_Write(Request& request, net_buffer* buffer, bigtime_t timeout)
while (fBuffer.Writable() < request.size && !IsWriteShutdown()) {
benaphore_unlock(&fLock);
status_t error = acquire_sem_etc(fWriterSem, 1, B_ABSOLUTE_TIMEOUT,
timeout);
status_t error = acquire_sem_etc(fWriterSem, 1,
B_ABSOLUTE_TIMEOUT | B_CAN_INTERRUPT, timeout);
benaphore_lock(&fLock);