183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
timeout.tv_usec = (int)lrint((timeInterval - timeout.tv_sec) * 1000);
#ifdef OF_AMIGAOS
if ((cancelSignal = AllocSignal(-1)) == (ULONG)-1)
@throw [OFObserveFailedException exceptionWithObserver: self
errNo: EAGAIN];
execSignalMask = _execSignalMask | (1 << cancelSignal);
Forbid();
_waitingTask = FindTask(NULL);
_cancelSignal = cancelSignal;
events = WaitSelect(_maxFD + 1, &readFDs, &writeFDs, NULL,
(void *)(timeInterval != -1 ? &timeout : NULL), &execSignalMask);
execSignalMask &= ~(1 << cancelSignal);
_waitingTask = NULL;
FreeSignal(_cancelSignal);
Permit();
#else
events = select(_maxFD + 1, &readFDs, &writeFDs, NULL,
|
|
|
|
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
timeout.tv_usec = (int)lrint((timeInterval - timeout.tv_sec) * 1000);
#ifdef OF_AMIGAOS
if ((cancelSignal = AllocSignal(-1)) == (ULONG)-1)
@throw [OFObserveFailedException exceptionWithObserver: self
errNo: EAGAIN];
execSignalMask = _execSignalMask | (1ul << cancelSignal);
Forbid();
_waitingTask = FindTask(NULL);
_cancelSignal = cancelSignal;
events = WaitSelect(_maxFD + 1, &readFDs, &writeFDs, NULL,
(void *)(timeInterval != -1 ? &timeout : NULL), &execSignalMask);
execSignalMask &= ~(1ul << cancelSignal);
_waitingTask = NULL;
FreeSignal(_cancelSignal);
Permit();
#else
events = select(_maxFD + 1, &readFDs, &writeFDs, NULL,
|