mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-30 00:11:26 +00:00
stream and runloop fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25147 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
37f9a1410b
commit
ef7a025c3f
7 changed files with 191 additions and 202 deletions
|
@ -424,7 +424,7 @@ static const NSMapTableValueCallBacks WatcherMapValueCallBacks =
|
|||
}
|
||||
else
|
||||
{
|
||||
SleepEx(wait_timeout, TRUE);
|
||||
SleepEx(wait_timeout, TRUE);
|
||||
wait_return = WAIT_OBJECT_0;
|
||||
}
|
||||
NSDebugMLLog(@"NSRunLoop", @"wait returned %d", wait_return);
|
||||
|
@ -467,7 +467,7 @@ static const NSMapTableValueCallBacks WatcherMapValueCallBacks =
|
|||
*/
|
||||
count = GSIArrayCount(_trigger);
|
||||
completed = NO;
|
||||
while (completed == NO && count-- > 0)
|
||||
while (count-- > 0)
|
||||
{
|
||||
GSRunLoopWatcher *watcher;
|
||||
|
||||
|
@ -503,7 +503,7 @@ static const NSMapTableValueCallBacks WatcherMapValueCallBacks =
|
|||
return NO;
|
||||
}
|
||||
|
||||
// if there arent events
|
||||
// if there aren't events
|
||||
if (wait_return == WAIT_TIMEOUT)
|
||||
{
|
||||
completed = YES;
|
||||
|
|
|
@ -368,7 +368,6 @@ static void setNonblocking(SOCKET fd)
|
|||
if (h == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return;
|
||||
}
|
||||
[self _setLoopID: (void*)h];
|
||||
|
@ -418,7 +417,6 @@ static void setNonblocking(SOCKET fd)
|
|||
else if (readLen == 0)
|
||||
{
|
||||
[self _setStatus: NSStreamStatusAtEnd];
|
||||
[self _sendEvent: NSStreamEventEndEncountered];
|
||||
}
|
||||
return (int)readLen;
|
||||
}
|
||||
|
@ -635,7 +633,6 @@ static void setNonblocking(SOCKET fd)
|
|||
{
|
||||
if (myStatus == NSStreamStatusError)
|
||||
{
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return -1; // Waiting for read.
|
||||
}
|
||||
if (myStatus == NSStreamStatusOpen)
|
||||
|
@ -645,7 +642,6 @@ static void setNonblocking(SOCKET fd)
|
|||
* so we must be at EOF.
|
||||
*/
|
||||
[self _setStatus: NSStreamStatusAtEnd];
|
||||
[self _sendEvent: NSStreamEventEndEncountered];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -808,19 +804,13 @@ static void setNonblocking(SOCKET fd)
|
|||
&& WSAGetLastError() != WSAEWOULDBLOCK)
|
||||
{// make an error
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return;
|
||||
}
|
||||
// waiting on writable, as an indication of opened
|
||||
if (_runloop)
|
||||
if (NSCountMapTable(_loops) > 0)
|
||||
{
|
||||
unsigned i = [_modes count];
|
||||
|
||||
WSAEventSelect(_sock, _loopID, FD_ALL_EVENTS);
|
||||
while (i-- > 0)
|
||||
{
|
||||
[_runloop addStream: self mode: [_modes objectAtIndex: i]];
|
||||
}
|
||||
[self _schedule];
|
||||
}
|
||||
[self _setStatus: NSStreamStatusOpening];
|
||||
return;
|
||||
|
@ -902,7 +892,6 @@ static void setNonblocking(SOCKET fd)
|
|||
else if (readLen == 0)
|
||||
{
|
||||
[self _setStatus: NSStreamStatusAtEnd];
|
||||
[self _sendEvent: NSStreamEventEndEncountered];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -950,12 +939,7 @@ static void setNonblocking(SOCKET fd)
|
|||
|
||||
if ([self streamStatus] == NSStreamStatusOpening)
|
||||
{
|
||||
unsigned i = [_modes count];
|
||||
|
||||
while (i-- > 0)
|
||||
{
|
||||
[_runloop removeStream: self mode: [_modes objectAtIndex: i]];
|
||||
}
|
||||
[self _unschedule];
|
||||
if (error == 0)
|
||||
{
|
||||
unsigned len = sizeof(error);
|
||||
|
@ -1029,7 +1013,6 @@ static void setNonblocking(SOCKET fd)
|
|||
if ([self _isOpened])
|
||||
{
|
||||
[self _setStatus: NSStreamStatusAtEnd];
|
||||
[self _sendEvent: NSStreamEventEndEncountered];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1123,7 +1106,6 @@ static void setNonblocking(SOCKET fd)
|
|||
if (h == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return;
|
||||
}
|
||||
else if (_shouldAppend == NO)
|
||||
|
@ -1131,7 +1113,6 @@ static void setNonblocking(SOCKET fd)
|
|||
if (SetEndOfFile(h) == 0) // Truncate to current file pointer (0)
|
||||
{
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
CloseHandle(h);
|
||||
return;
|
||||
}
|
||||
|
@ -1589,20 +1570,13 @@ static void setNonblocking(SOCKET fd)
|
|||
&& WSAGetLastError() != WSAEWOULDBLOCK)
|
||||
{// make an error
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return;
|
||||
}
|
||||
// waiting on writable, as an indication of opened
|
||||
if (_runloop)
|
||||
if (NSCountMapTable(_loops) > 0)
|
||||
{
|
||||
unsigned i = [_modes count];
|
||||
|
||||
WSAEventSelect(_sock, _loopID, FD_ALL_EVENTS);
|
||||
|
||||
while (i-- > 0)
|
||||
{
|
||||
[_runloop addStream: self mode: [_modes objectAtIndex: i]];
|
||||
}
|
||||
[self _schedule];
|
||||
}
|
||||
[self _setStatus: NSStreamStatusOpening];
|
||||
return;
|
||||
|
@ -1686,13 +1660,7 @@ static void setNonblocking(SOCKET fd)
|
|||
|
||||
if ([self streamStatus] == NSStreamStatusOpening)
|
||||
{
|
||||
unsigned i = [_modes count];
|
||||
|
||||
while (i-- > 0)
|
||||
{
|
||||
[_runloop removeStream: self mode: [_modes objectAtIndex: i]];
|
||||
}
|
||||
|
||||
[self _unschedule];
|
||||
if (error == 0)
|
||||
{
|
||||
unsigned len = sizeof(error);
|
||||
|
@ -2294,7 +2262,6 @@ done:
|
|||
if (bindReturn < 0 || listenReturn < 0)
|
||||
{
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return;
|
||||
}
|
||||
setNonblocking(_sock);
|
||||
|
@ -2508,7 +2475,6 @@ done:
|
|||
if (handle == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2531,7 +2497,6 @@ done:
|
|||
else if (errno != ERROR_IO_PENDING)
|
||||
{
|
||||
[self _recordError];
|
||||
[self _sendEvent: NSStreamEventErrorOccurred];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -2543,7 +2508,6 @@ done:
|
|||
if (alreadyConnected == YES)
|
||||
{
|
||||
[self _setStatus: NSStreamStatusOpen];
|
||||
[self _sendEvent: NSStreamEventHasBytesAvailable];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue