More mingw32 tidyups

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22000 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2005-11-14 09:25:31 +00:00
parent af1b622257
commit 44d19385ed
7 changed files with 2342 additions and 364 deletions

View file

@ -1,3 +1,9 @@
2005-11-14 Richard Frith-Macdonald <rfm@gnu.org>
* Source/win32/GSFileHandleWin32.m: Move mingw32 implementation of
file handle code here.
* Source/GSFileHandle.m: Remove mingw32 code.
2005-11-12 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSPathUtilities.m: NSOpenStepRootDirectory() remove

View file

@ -129,7 +129,6 @@ GSArray.m \
GSAttributedString.m \
GSCountedSet.m \
GSDictionary.m \
GSFileHandle.m \
GSFormat.m \
GSFTPURLHandle.m \
GSHTTPURLHandle.m \
@ -226,6 +225,7 @@ objc-load.m
ifneq ($(GNUSTEP_TARGET_OS), mingw32)
BASE_MFILES += \
GSFileHandle.m \
NSMessagePort.m \
NSMessagePortNameServer.m
endif

View file

@ -44,15 +44,6 @@
#include "../Tools/gdomap.h"
#if defined(__MINGW32__)
#include <winsock2.h>
#include <fcntl.h>
#include <sys/file.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#else
#include <time.h>
#include <sys/time.h>
#include <sys/param.h>
@ -68,11 +59,6 @@
#endif
#include <netdb.h>
#define SOCKET int
#define SOCKET_ERROR -1
#define INVALID_SOCKET -1
#endif /* __MINGW32__ */
#include <string.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
@ -133,11 +119,7 @@ static NSString* NotificationKey = @"NSFileHandleNotificationKey";
#endif
if (isSocket)
{
#if defined(__MINGW32__)
len = recv((SOCKET)_get_osfhandle(descriptor), buf, len, 0);
#else
len = recv(descriptor, buf, len, 0);
#endif
}
else
{
@ -161,11 +143,7 @@ static NSString* NotificationKey = @"NSFileHandleNotificationKey";
#endif
if (isSocket)
{
#if defined(__MINGW32__)
len = send((SOCKET)_get_osfhandle(descriptor), buf, len, 0);
#else
len = send(descriptor, buf, len, 0);
#endif
}
else
{
@ -302,14 +280,6 @@ getAddr(NSString* name, NSString* svc, NSString* pcl, struct sockaddr_in *sin)
[self setNonBlocking: wasNonBlocking];
if (closeOnDealloc == YES)
{
#if defined(__MINGW32__)
if (isSocket)
{
closesocket((SOCKET)_get_osfhandle(descriptor));
WSACloseEvent(event);
event = WSA_INVALID_EVENT;
}
#endif
close(descriptor);
descriptor = -1;
}
@ -842,21 +812,13 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
{
NSLog(@"unable to bind to port %s:%d - %s", inet_ntoa(lsin.sin_addr),
GSSwapBigI16ToHost(sin.sin_port), GSLastErrorStr(errno));
#if defined(__MINGW32__)
(void) closesocket(net);
#else
(void) close(net);
#endif
RELEASE(self);
return nil;
}
}
#if defined(__MINGW32__)
self = [self initWithNativeHandle: (void*)net closeOnDealloc: YES];
#else
self = [self initWithFileDescriptor: net closeOnDealloc: YES];
#endif
if (self)
{
NSMutableDictionary* info;
@ -865,11 +827,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
[self setNonBlocking: YES];
if (connect(net, (struct sockaddr*)&sin, sizeof(sin)) == SOCKET_ERROR)
{
#if defined(__MINGW32__)
if (WSAGetLastError() != WSAEWOULDBLOCK)
#else
if (errno != EINPROGRESS)
#endif
{
NSLog(@"unable to make connection to %s:%d - %s",
inet_ntoa(sin.sin_addr),
@ -956,11 +914,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
{
NSLog(@"unable to bind to port %s:%d - %s", inet_ntoa(sin.sin_addr),
GSSwapBigI16ToHost(sin.sin_port), GSLastErrorStr(errno));
#if defined(__MINGW32__)
(void) closesocket(net);
#else
(void) close(net);
#endif
RELEASE(self);
return nil;
}
@ -968,11 +922,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
if (listen(net, 256) == SOCKET_ERROR)
{
NSLog(@"unable to listen on port - %s", GSLastErrorStr(errno));
#if defined(__MINGW32__)
(void) closesocket(net);
#else
(void) close(net);
#endif
RELEASE(self);
return nil;
}
@ -980,20 +930,12 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
if (getsockname(net, (struct sockaddr*)&sin, &size) == SOCKET_ERROR)
{
NSLog(@"unable to get socket name - %s", GSLastErrorStr(errno));
#if defined(__MINGW32__)
(void) closesocket(net);
#else
(void) close(net);
#endif
RELEASE(self);
return nil;
}
#if defined(__MINGW32__)
self = [self initWithNativeHandle: (void*)net closeOnDealloc: YES];
#else
self = [self initWithFileDescriptor: net closeOnDealloc: YES];
#endif
if (self)
{
isSocket = YES;
@ -1008,13 +950,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
- (id) initForReadingAtPath: (NSString*)path
{
#if defined(__MINGW32__)
int d = _wopen(
(unichar*)[path cStringUsingEncoding: NSUnicodeStringEncoding],
O_RDONLY|O_BINARY);
#else
int d = open([path fileSystemRepresentation], O_RDONLY|O_BINARY);
#endif
if (d < 0)
{
@ -1036,13 +972,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
- (id) initForWritingAtPath: (NSString*)path
{
#if defined(__MINGW32__)
int d = _wopen(
(unichar*)[path cStringUsingEncoding: NSUnicodeStringEncoding],
O_WRONLY|O_BINARY);
#else
int d = open([path fileSystemRepresentation], O_WRONLY|O_BINARY);
#endif
if (d < 0)
{
@ -1064,13 +994,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
- (id) initForUpdatingAtPath: (NSString*)path
{
#if defined(__MINGW32__)
int d = _wopen(
(unichar*)[path cStringUsingEncoding: NSUnicodeStringEncoding],
O_RDWR|O_BINARY);
#else
int d = open([path fileSystemRepresentation], O_RDWR|O_BINARY);
#endif
if (d < 0)
{
@ -1151,18 +1075,12 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
- (id) initWithNullDevice
{
#if defined(__MINGW32__)
isNullDevice = YES;
isStandardFile = YES;
descriptor = -1;
#else
self = [self initWithFileDescriptor: open("/dev/null", O_RDWR|O_BINARY)
closeOnDealloc: YES];
if (self)
{
isNullDevice = YES;
}
#endif
return self;
}
@ -1171,18 +1089,10 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
self = [super init];
if (self != nil)
{
#if defined(__MINGW32__)
struct _stat sbuf;
#else
struct stat sbuf;
int e;
#endif
struct stat sbuf;
int e;
#if defined(__MINGW32__)
if (_fstat(desc, &sbuf) != 0)
#else
if (fstat(desc, &sbuf) < 0)
#endif
{
NSLog(@"unable to get status of descriptor %d - %s",
desc, GSLastErrorStr(errno));
@ -1199,26 +1109,6 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
}
}
#if defined(__MINGW32__)
if (isStandardFile == NO)
{
unsigned long nbio = 0;
isSocket = YES;
/*
* This is probably a socket ... try
* using a socket specific call and see if that fails.
*/
if (ioctlsocket((SOCKET)_get_osfhandle(desc), FIONBIO, &nbio) == 0)
{
wasNonBlocking = (nbio == 0) ? NO : YES;
}
else
{
isSocket = NO; // maybe special file desc. like std in/out/err?
}
}
#else
if ((e = fcntl(desc, F_GETFL, 0)) >= 0)
{
if (e & NBLK_OPT)
@ -1230,7 +1120,6 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
wasNonBlocking = NO;
}
}
#endif
isNonBlocking = wasNonBlocking;
descriptor = desc;
@ -1243,44 +1132,18 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
writeOK = YES;
acceptOK = YES;
connectOK = YES;
#if defined(__MINGW32__)
if (isSocket)
{
event = CreateEvent(NULL, NO, NO, NULL);
if (event == WSA_INVALID_EVENT)
{
NSLog(@"Invalid Event - '%d'", WSAGetLastError());
return nil;
}
WSAEventSelect(_get_osfhandle(descriptor), event, FD_ALL_EVENTS);
}
else
{
event = WSA_INVALID_EVENT;
}
#endif
}
return self;
}
- (id) initWithNativeHandle: (void*)hdl
{
#if defined(__MINGW32__)
return [self initWithFileDescriptor: _open_osfhandle((SOCKET)hdl, 0)
closeOnDealloc: NO];
#else
return [self initWithFileDescriptor: (gsaddr)hdl closeOnDealloc: NO];
#endif
}
- (id) initWithNativeHandle: (void*)hdl closeOnDealloc: (BOOL)flag
{
#if defined(__MINGW32__)
return [self initWithFileDescriptor: _open_osfhandle((SOCKET)hdl, 0)
closeOnDealloc: flag];
#else
return [self initWithFileDescriptor: (gsaddr)hdl closeOnDealloc: flag];
#endif
}
- (void) checkAccept
@ -1385,11 +1248,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
- (void*) nativeHandle
{
#if defined(__MINGW32__)
return (void*)(SOCKET)_get_osfhandle(descriptor);
#else
return (void*)descriptor;
#endif
}
// Synchronous I/O operations
@ -1530,12 +1389,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
rval = [self write: (char*)ptr+pos length: toWrite];
if (rval < 0)
{
#if defined(__MINGW32__)
if (WSAGetLastError()== WSAEINTR ||
WSAGetLastError()== WSAEWOULDBLOCK)
#else
if (errno == EAGAIN || errno == EINTR)
#endif
{
rval = 0;
}
@ -1650,11 +1504,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
}
else
#endif
#if defined(__MINGW32__)
result = _lseek(descriptor, 0, SEEK_CUR);
#else
result = lseek(descriptor, 0, SEEK_CUR);
#endif
}
if (result < 0)
{
@ -1678,11 +1528,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
}
else
#endif
#if defined(__MINGW32__)
result = _lseek(descriptor, 0, SEEK_END);
#else
result = lseek(descriptor, 0, SEEK_END);
#endif
}
if (result < 0)
{
@ -1706,11 +1552,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
}
else
#endif
#if defined(__MINGW32__)
result = _lseek(descriptor, (off_t)pos, SEEK_SET);
#else
result = lseek(descriptor, (off_t)pos, SEEK_SET);
#endif
}
if (result < 0)
{
@ -1740,14 +1582,6 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
gzclose(gzDescriptor);
gzDescriptor = 0;
}
#endif
#if defined(__MINGW32__)
if (isSocket)
{
(void)closesocket((SOCKET)_get_osfhandle(descriptor));
WSACloseEvent(event);
event = WSA_INVALID_EVENT;
}
#endif
(void)close(descriptor);
descriptor = -1;
@ -1782,24 +1616,16 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
{
if (isStandardFile)
{
#if defined(__MINGW32__)
(void)_commit(descriptor);
#else
(void)sync();
#endif
}
}
- (void) truncateFileAtOffset: (unsigned long long)pos
{
#if defined(__MINGW32__)
_chsize(descriptor, pos);
#else
if (isStandardFile && descriptor >= 0)
{
(void)ftruncate(descriptor, pos);
}
#endif
[self seekToFileOffset: pos];
}
@ -1926,32 +1752,18 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
for (i = 0; i < [modes count]; i++)
{
#if defined(__MINGW32__)
[l removeEvent: (void*)(gsaddr)event
type: ET_HANDLE
forMode: [modes objectAtIndex: i]
all: YES];
#else
[l removeEvent: (void*)(gsaddr)descriptor
type: ET_RDESC
forMode: [modes objectAtIndex: i]
all: YES];
#endif
}
}
else
{
#if defined(__MINGW32__)
[l removeEvent: (void*)(gsaddr)event
type: ET_HANDLE
forMode: NSDefaultRunLoopMode
all: YES];
#else
[l removeEvent: (void*)(gsaddr)descriptor
type: ET_RDESC
forMode: NSDefaultRunLoopMode
all: YES];
#endif
}
}
@ -1980,32 +1792,18 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
for (i = 0; i < [modes count]; i++)
{
#if defined(__MINGW32__)
[l removeEvent: (void*)(gsaddr)event
type: ET_HANDLE
forMode: [modes objectAtIndex: i]
all: YES];
#else
[l removeEvent: (void*)(gsaddr)descriptor
type: ET_WDESC
forMode: [modes objectAtIndex: i]
all: YES];
#endif
}
}
else
{
#if defined(__MINGW32__)
[l removeEvent: (void*)(gsaddr)event
type: ET_HANDLE
forMode: NSDefaultRunLoopMode
all: YES];
#else
[l removeEvent: (void*)(gsaddr)descriptor
type: ET_WDESC
forMode: NSDefaultRunLoopMode
all: YES];
#endif
}
}
@ -2026,33 +1824,19 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
for (i = 0; i < [modes count]; i++)
{
#if defined(__MINGW32__)
[l addEvent: (void*)(gsaddr)event
type: ET_HANDLE
watcher: self
forMode: [modes objectAtIndex: i]];
#else
[l addEvent: (void*)(gsaddr)descriptor
type: ET_RDESC
watcher: self
forMode: [modes objectAtIndex: i]];
#endif
}
[readInfo setObject: modes forKey: NSFileHandleNotificationMonitorModes];
}
else
{
#if defined(__MINGW32__)
[l addEvent: (void*)(gsaddr)event
type: ET_HANDLE
watcher: self
forMode: NSDefaultRunLoopMode];
#else
[l addEvent: (void*)(gsaddr)descriptor
type: ET_RDESC
watcher: self
forMode: NSDefaultRunLoopMode];
#endif
}
}
@ -2077,32 +1861,18 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
for (i = 0; i < [modes count]; i++)
{
#if defined(__MINGW32__)
[l addEvent: (void*)(gsaddr)event
type: ET_HANDLE
watcher: self
forMode: [modes objectAtIndex: i]];
#else
[l addEvent: (void*)(gsaddr)descriptor
type: ET_WDESC
watcher: self
forMode: [modes objectAtIndex: i]];
#endif
}
}
else
{
#if defined(__MINGW32__)
[l addEvent: (void*)(gsaddr)event
type: ET_HANDLE
watcher: self
forMode: NSDefaultRunLoopMode];
#else
[l addEvent: (void*)(gsaddr)descriptor
type: ET_WDESC
watcher: self
forMode: NSDefaultRunLoopMode];
#endif
}
}
}
@ -2115,18 +1885,10 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
if (operation == NSFileHandleConnectionAcceptedNotification)
{
struct sockaddr_in buf;
#if defined(__MINGW32__)
SOCKET desc;
#else
int desc;
#endif
unsigned int blen = sizeof(buf);
#if defined(__MINGW32__)
desc = accept((SOCKET)_get_osfhandle(descriptor), (struct sockaddr*)&buf, &blen);
#else
desc = accept(descriptor, (struct sockaddr*)&buf, &blen);
#endif
if (desc == INVALID_SOCKET)
{
NSString *s;
@ -2149,13 +1911,8 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
setsockopt(desc, SOL_SOCKET, SO_KEEPALIVE, (char *)&status,
sizeof(status));
#if defined(__MINGW32__)
h = [[[self class] alloc] initWithNativeHandle: (void*)desc
closeOnDealloc: YES];
#else
h = [[[self class] alloc] initWithFileDescriptor: desc
closeOnDealloc: YES];
#endif
h->isSocket = YES;
getpeername(desc, (struct sockaddr*)&sin, &size);
[h setAddr: &sin];
@ -2200,12 +1957,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
}
else if (received < 0)
{
#if defined(__MINGW32__)
if (WSAGetLastError() != WSAEINTR
&& WSAGetLastError() != WSAEWOULDBLOCK)
#else
if (errno != EAGAIN && errno != EINTR)
#endif
{
NSString *s;
@ -2240,13 +1992,8 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
int result;
unsigned len = sizeof(result);
#if defined(__MINGW32__)
if (getsockopt((SOCKET)_get_osfhandle(descriptor), SOL_SOCKET, SO_ERROR,
(char*)&result, &len) == 0 && result != 0)
#else
if (getsockopt(descriptor, SOL_SOCKET, SO_ERROR,
(char*)&result, &len) == 0 && result != 0)
#endif
{
NSString *s;
@ -2279,12 +2026,7 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
length: length-writePos];
if (written <= 0)
{
#if defined(__MINGW32__)
if (written < 0 && WSAGetLastError()!= WSAEINTR
&& WSAGetLastError()!= WSAEWOULDBLOCK)
#else
if (written < 0 && errno != EAGAIN && errno != EINTR)
#endif
{
NSString *s;
@ -2311,78 +2053,12 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
extra: (void*)extra
forMode: (NSString*)mode
{
#if defined(__MINGW32__)
WSANETWORKEVENTS ocurredEvents;
#endif
NSDebugMLLog(@"NSFileHandle", @"%@ event: %d", self, type);
if (isNonBlocking == NO)
{
[self setNonBlocking: YES];
}
#if defined(__MINGW32__)
if (WSAEnumNetworkEvents((SOCKET)_get_osfhandle(descriptor),
event, &ocurredEvents) == SOCKET_ERROR)
{
NSLog(@"Error getting event type %d", WSAGetLastError());
abort();
}
if (ocurredEvents.lNetworkEvents & FD_CONNECT)
{
NSDebugMLLog(@"NSFileHandle", @"Connect on %x", extra);
ocurredEvents.lNetworkEvents ^= FD_CONNECT;
[self receivedEventWrite];
GSNotifyASAP();
}
if (ocurredEvents.lNetworkEvents & FD_ACCEPT)
{
NSDebugMLLog(@"NSFileHandle", @"Accept on %x", extra);
ocurredEvents.lNetworkEvents ^= FD_ACCEPT;
[self receivedEventRead];
GSNotifyASAP();
}
if (ocurredEvents.lNetworkEvents & FD_WRITE)
{
NSDebugMLLog(@"NSFileHandle", @"Write on %x", extra);
ocurredEvents.lNetworkEvents ^= FD_WRITE;
[self receivedEventWrite];
GSNotifyASAP();
}
if (ocurredEvents.lNetworkEvents & FD_READ)
{
NSDebugMLLog(@"NSFileHandle", @"Read on %x", extra);
ocurredEvents.lNetworkEvents ^= FD_READ;
[self receivedEventRead];
GSNotifyASAP();
}
if (ocurredEvents.lNetworkEvents & FD_OOB)
{
NSDebugMLLog(@"NSFileHandle", @"OOB on %x", extra);
ocurredEvents.lNetworkEvents ^= FD_OOB;
[self receivedEventRead];
GSNotifyASAP();
}
if (ocurredEvents.lNetworkEvents & FD_CLOSE)
{
NSDebugMLLog(@"NSFileHandle", @"Close on %x", extra);
ocurredEvents.lNetworkEvents ^= FD_CLOSE;
if ([writeInfo count] > 0)
{
[self receivedEventWrite];
}
else
{
[self receivedEventRead];
}
GSNotifyASAP();
}
if (ocurredEvents.lNetworkEvents)
{
NSLog(@"Event not get %d", ocurredEvents.lNetworkEvents);
abort();
}
#else
if (type == ET_RDESC)
{
[self receivedEventRead];
@ -2391,7 +2067,6 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
{
[self receivedEventWrite];
}
#endif
}
- (NSDate*) timedOutEvent: (void*)data
@ -2425,37 +2100,6 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
}
else
{
#if defined(__MINGW32__)
unsigned long dummy;
if (isSocket != YES)
return;
if (flag)
{
dummy = 1;
if (ioctlsocket((SOCKET)_get_osfhandle(descriptor), FIONBIO, &dummy)
== SOCKET_ERROR)
{
NSLog(@"unable to set non-blocking mode - %s",
GSLastErrorStr(errno));
}
else
isNonBlocking = flag;
}
else
{
dummy = 0;
if (ioctlsocket((SOCKET)_get_osfhandle(descriptor), FIONBIO, &dummy)
== SOCKET_ERROR)
{
NSLog(@"unable to set blocking mode - %s",
GSLastErrorStr(errno));
}
else
isNonBlocking = flag;
}
#else
int e;
if ((e = fcntl(descriptor, F_GETFL, 0)) >= 0)
@ -2483,7 +2127,6 @@ NSString * const GSSOCKSRecvAddr = @"GSSOCKSRecvAddr";
NSLog(@"unable to get non-blocking mode for %d - %s",
descriptor, GSLastErrorStr(errno));
}
#endif
}
}

View file

@ -30,6 +30,7 @@ include ../../config.mak
SUBPROJECT_NAME = win32
win32_OBJC_FILES =\
GSFileHandleWin32.m \
GSRunLoopCtxt.m \
GSRunLoopWatcher.m \
NSMessagePortWin32.m \

File diff suppressed because it is too large Load diff

View file

@ -388,10 +388,36 @@ static const NSMapTableValueCallBacks WatcherMapValueCallBacks =
// check wait errors
if (wait_return == WAIT_FAILED)
{
NSLog(@"WaitForMultipleObjects() error in "
@"-acceptInputForMode:beforeDate: '%s'",
int i;
BOOL found = NO;
NSDebugMLLog(@"NSRunLoop", @"WaitForMultipleObjects() error in "
@"-acceptInputForMode:beforeDate: %s",
GSLastErrorStr(GetLastError()));
abort ();
/*
* Check each handle in turn until either we find one which has an
* event signalled, or we find the one which caused the original
* wait to fail ... so the callback routine for that handle can
* deal with the problem.
*/
for (i = 0; i < num_handles; i++)
{
handleArray[0] = handleArray[i];
wait_return = WaitForMultipleObjects(1, handleArray, NO, 0);
if (wait_return != WAIT_TIMEOUT)
{
wait_return = WAIT_OBJECT_0;
found = YES;
break;
}
}
if (found == NO)
{
NSLog(@"WaitForMultipleObjects() error in "
@"-acceptInputForMode:beforeDate: %s",
GSLastErrorStr(GetLastError()));
abort ();
}
}
// if there arent events

View file

@ -211,7 +211,7 @@ int con_data (id prx)
printf(" got %x\n", small.z);
[pool release];
#if !defined(__MINGW32__)
#if 1 || !defined(__MINGW32__)
pool = [NSAutoreleasePool new];
printf("Struct:\n");
printf(" sending c='%c',d=%g,i=%d,s=%s,l=%ld",