ObjFW  Check-in [bd05eb8de3]

Overview
Comment:OFKernelEventObserver: Rename a private method
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: bd05eb8de3b181c34c4e7bbbb08abb3a35a8d4565cabca93b6e777af91535777
User & Date: js on 2015-04-26 10:40:10
Other Links: manifest | tags
Context
2015-04-26
10:42
OFKernelEventObserver: Keep FD -> object mapping check-in: f9ceddcb7d user: js tags: trunk
10:40
OFKernelEventObserver: Rename a private method check-in: bd05eb8de3 user: js tags: trunk
08:54
Small improvements for OFHTTPClient & OFHTTPServer check-in: 0a249f58cf user: js tags: trunk
Changes

Modified src/OFKernelEventObserver+Private.h from [40cec7a9e7] to [eac8ac6f06].

18
19
20
21
22
23
24
25

26
18
19
20
21
22
23
24

25
26







-
+


@interface OFKernelEventObserver (OF_PRIVATE_CATEGORY)
- (void)OF_addFileDescriptorForReading: (int)fd;
- (void)OF_addFileDescriptorForWriting: (int)fd;
- (void)OF_removeFileDescriptorForReading: (int)fd;
- (void)OF_removeFileDescriptorForWriting: (int)fd;
- (void)OF_processQueueAndStoreRemovedIn: (OFMutableArray*)removed;
- (bool)OF_processCache;
- (bool)OF_processReadBuffers;
@end

Modified src/OFKernelEventObserver.m from [628ba88c27] to [6b86d2ab72].

396
397
398
399
400
401
402
403

404
405
406
407

408
409
410
411
412
413
414
415
416
417
418
419

420
421
422
423
424
425
426
427


428
429

430
431
432
433
434
396
397
398
399
400
401
402

403
404
405
406

407
408
409
410
411
412
413
414
415
416
417
418

419
420
421
422
423
424
425


426
427
428

429
430
431
432
433
434







-
+



-
+











-
+






-
-
+
+

-
+





	OF_ENSURE(write(_cancelFD[1], "", 1) > 0);
#else
	OF_ENSURE(sendto(_cancelFD[1], "", 1, 0, (struct sockaddr*)&_cancelAddr,
	    sizeof(_cancelAddr)) > 0);
#endif
}

- (bool)OF_processCache
- (bool)OF_processReadBuffers
{
	id const *objects = [_readObjects objects];
	size_t i, count = [_readObjects count];
	bool foundInCache = false;
	bool foundInReadBuffer = false;

	for (i = 0; i < count; i++) {
		void *pool = objc_autoreleasePoolPush();

		if ([objects[i] isKindOfClass: [OFStream class]] &&
		    [objects[i] hasDataInReadBuffer] &&
		    ![objects[i] OF_isWaitingForDelimiter]) {
			if ([_delegate respondsToSelector:
			    @selector(objectIsReadyForReading:)])
				[_delegate objectIsReadyForReading: objects[i]];

			foundInCache = true;
			foundInReadBuffer = true;
		}

		objc_autoreleasePoolPop(pool);
	}

	/*
	 * As long as we have data in the cache for any stream, we don't want
	 * to block.
	 * As long as we have data in the read buffer for any stream, we don't
	 * want to block.
	 */
	if (foundInCache)
	if (foundInReadBuffer)
		return true;

	return false;
}
@end

Modified src/OFKernelEventObserver_kqueue.m from [5dab973998] to [08d91618ea].

133
134
135
136
137
138
139
140

141
142
143
144
145
146
147
133
134
135
136
137
138
139

140
141
142
143
144
145
146
147







-
+








	/*
	 * Make sure to keep the streams retained and thus the file descriptors
	 * valid until the actual change has been performed.
	 */
	[self OF_processQueueAndStoreRemovedIn: _removedArray];

	if ([self OF_processCache]) {
	if ([self OF_processReadBuffers]) {
		objc_autoreleasePoolPop(pool);
		return true;
	}

	objc_autoreleasePoolPop(pool);

	events = kevent(_kernelQueue, [_changeList items],

Modified src/OFKernelEventObserver_poll.m from [c6c9ef266d] to [87d84638ba].

135
136
137
138
139
140
141
142

143
144
145
146
147
148
149
135
136
137
138
139
140
141

142
143
144
145
146
147
148
149







-
+







	void *pool = objc_autoreleasePoolPush();
	struct pollfd *FDs;
	int events;
	size_t i, nFDs, realEvents = 0;

	[self OF_processQueueAndStoreRemovedIn: nil];

	if ([self OF_processCache]) {
	if ([self OF_processReadBuffers]) {
		objc_autoreleasePoolPop(pool);
		return true;
	}

	objc_autoreleasePoolPop(pool);

	FDs = [_FDs items];

Modified src/OFKernelEventObserver_select.m from [ea8324b0c4] to [094238e437].

87
88
89
90
91
92
93
94

95
96
97
98
99
100
101
87
88
89
90
91
92
93

94
95
96
97
98
99
100
101







-
+







	fd_set writeFDs;
	struct timeval timeout;
	int events;
	size_t i, count, realEvents = 0;

	[self OF_processQueueAndStoreRemovedIn: nil];

	if ([self OF_processCache]) {
	if ([self OF_processReadBuffers]) {
		objc_autoreleasePoolPop(pool);
		return true;
	}

	objc_autoreleasePoolPop(pool);

#ifdef FD_COPY