ObjFW  Diff

Differences From Artifact [434ba010aa]:

  • File src/OFKernelEventObserver_select.m — part of check-in [4e59d2692f] at 2014-04-26 00:40:17 on branch trunk — Fix a few issues on LLP64 and Win64

    LLP64 was mostly fast enumeration using an unsigned long for the state,
    which can't store a pointer or a size_t on LLP64. This is now solved by
    either throwing an OFOutOfRangeException if the value of the size_t is
    bigger than ULONG_MAX or storing the pointer in the extra field (copied
    using memcpy, as it's an array of unsigned long, which again would be
    too small to store a pointer).

    Win64 was mostly Microsoft not being able to decide whether a length is
    a size_t, a DWORD, an int or an unsigned int (thus the different types
    in places that seem to be almost the same). But since that would not be
    confusing enough, a file descriptor is an int if it's for a file, but a
    long long if it is for a socket. But of course, for ReadFile and friends
    it's a DWORD instead of an int then. (user: js, size: 3538) [annotate] [blame] [check-ins using]

To Artifact [71a3935230]:


64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
	FD_CLR(fd, &_writeFDs);
}

- (bool)observeForTimeInterval: (of_time_interval_t)timeInterval
{
	void *pool = objc_autoreleasePoolPush();
	id *objects;
	fd_set readFDs;
	fd_set writeFDs;
	struct timeval timeout;
	size_t i, count, realEvents = 0;

	[self OF_processQueue];








|







64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
	FD_CLR(fd, &_writeFDs);
}

- (bool)observeForTimeInterval: (of_time_interval_t)timeInterval
{
	void *pool = objc_autoreleasePoolPush();
	id const *objects;
	fd_set readFDs;
	fd_set writeFDs;
	struct timeval timeout;
	size_t i, count, realEvents = 0;

	[self OF_processQueue];