summaryrefslogtreecommitdiff
path: root/pr/src/md/mac/macio.c
diff options
context:
space:
mode:
Diffstat (limited to 'pr/src/md/mac/macio.c')
-rw-r--r--pr/src/md/mac/macio.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/pr/src/md/mac/macio.c b/pr/src/md/mac/macio.c
index 0a546635..ef404db5 100644
--- a/pr/src/md/mac/macio.c
+++ b/pr/src/md/mac/macio.c
@@ -81,15 +81,16 @@ static void AsyncIOCompletion (ExtendedParamBlock *pbAsyncPtr)
if (_PR_MD_GET_INTSOFF()) {
thread->md.missedIONotify = PR_TRUE;
cpu->u.missed[cpu->where] |= _PR_MISSED_IO;
- return;
- }
+ } else {
+ _PR_INTSOFF(is);
- _PR_INTSOFF(is);
+ thread->md.osErrCode = noErr;
+ DoneWaitingOnThisThread(thread);
- thread->md.osErrCode = noErr;
- DoneWaitingOnThisThread(thread);
+ _PR_FAST_INTSON(is);
+ }
- _PR_FAST_INTSON(is);
+ SignalIdleSemaphore();
}
void _MD_SetError(OSErr oserror)
@@ -266,7 +267,7 @@ PRInt32 ReadWriteProc(PRFileDesc *fd, void *buf, PRUint32 bytes, IOOperation op)
a 32 byte Ptr in the heap, so only do this once
*/
if (!sCompletionUPP)
- sCompletionUPP = NewIOCompletionProc((IOCompletionProcPtr)&AsyncIOCompletion);
+ sCompletionUPP = NewIOCompletionUPP((IOCompletionProcPtr)&AsyncIOCompletion);
/* grab the thread so we know which one to post to at completion */
pbAsync.thread = me;