ObjFW  Diff

Differences From Artifact [ffbdf30d8b]:

  • File src/OFSelectKernelEventObserver.m — part of check-in [8ad878075b] at 2025-04-14 21:10:37 on branch trunk — Continue migrating to the ARC functions for RR (user: js size: 7078) [more...]

To Artifact [854a941489]:

  • File src/OFSelectKernelEventObserver.m — part of check-in [cc3a912418] at 2025-05-30 00:17:20 on branch trunk — OFKernelEventObserver: Handle EINTR on AmigaOS (user: js size: 7150) [more...]

210
211
212
213
214
215
216

217
218
219
220
221
222
223
	timeout.tv_sec = (time_t)timeInterval;
#else
	timeout.tv_sec = (long)timeInterval;
#endif
	timeout.tv_usec = (int)((timeInterval - timeout.tv_sec) * 1000000);

#ifdef OF_AMIGAOS

	if ((cancelSignal = AllocSignal(-1)) == (BYTE)-1)
		@throw [OFObserveKernelEventsFailedException
		    exceptionWithObserver: self
				    errNo: EAGAIN];

	execSignalMask = _execSignalMask | (1ul << cancelSignal);








>







210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
	timeout.tv_sec = (time_t)timeInterval;
#else
	timeout.tv_sec = (long)timeInterval;
#endif
	timeout.tv_usec = (int)((timeInterval - timeout.tv_sec) * 1000000);

#ifdef OF_AMIGAOS
retry:
	if ((cancelSignal = AllocSignal(-1)) == (BYTE)-1)
		@throw [OFObserveKernelEventsFailedException
		    exceptionWithObserver: self
				    errNo: EAGAIN];

	execSignalMask = _execSignalMask | (1ul << cancelSignal);

232
233
234
235
236
237
238
239





240
241
242

243
244
245
246
247
248
249
	execSignalMask &= ~(1ul << cancelSignal);

	_waitingTask = NULL;
	FreeSignal(_cancelSignal);

	Permit();

	if (events < 0)





		@throw [OFObserveKernelEventsFailedException
		    exceptionWithObserver: self
				    errNo: _OFSocketErrNo()];


	if (execSignalMask != 0 &&
	    [_delegate respondsToSelector: @selector(execSignalWasReceived:)])
		[_delegate execSignalWasReceived: execSignalMask];
#else
	while ((events = select(_maxFD + 1, &readFDs, &writeFDs, NULL,
	    (timeInterval != -1 ? &timeout : NULL))) < 0) {







|
>
>
>
>
>


|
>







233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
	execSignalMask &= ~(1ul << cancelSignal);

	_waitingTask = NULL;
	FreeSignal(_cancelSignal);

	Permit();

	if (events < 0) {
		int errNo = _OFSocketErrNo();

		if (errNo == EINTR)
			goto retry;

		@throw [OFObserveKernelEventsFailedException
		    exceptionWithObserver: self
				    errNo: errNo];
	}

	if (execSignalMask != 0 &&
	    [_delegate respondsToSelector: @selector(execSignalWasReceived:)])
		[_delegate execSignalWasReceived: execSignalMask];
#else
	while ((events = select(_maxFD + 1, &readFDs, &writeFDs, NULL,
	    (timeInterval != -1 ? &timeout : NULL))) < 0) {