146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
for (;;) {
uint16_t rnd = 0;
int ret;
while (rnd < 1024)
rnd = (uint16_t)rand();
_cancelAddr.sin_port = OF_BSWAP16_IF_LE(rnd);
ret = bind(_cancelFD[0],
(struct sockaddr *)&_cancelAddr,
sizeof(_cancelAddr));
if (ret == 0)
break;
|
|
|
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
for (;;) {
uint16_t rnd = 0;
int ret;
while (rnd < 1024)
rnd = (uint16_t)rand();
_cancelAddr.sin_port = OFToBigEndian16(rnd);
ret = bind(_cancelFD[0],
(struct sockaddr *)&_cancelAddr,
sizeof(_cancelAddr));
if (ret == 0)
break;
|
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
|
if (_waitingTask != NULL) {
Signal(_waitingTask, (1ul << _cancelSignal));
_waitingTask = NULL;
}
Permit();
#elif defined(OF_HAVE_PIPE)
OF_ENSURE(write(_cancelFD[1], "", 1) > 0);
#elif defined(OF_WII)
OF_ENSURE(sendto(_cancelFD[1], "", 1, 0,
(struct sockaddr *)&_cancelAddr, 8) > 0);
#else
OF_ENSURE(sendto(_cancelFD[1], (void *)"", 1, 0,
(struct sockaddr *)&_cancelAddr, sizeof(_cancelAddr)) > 0);
#endif
}
@end
|
|
|
|
|
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
|
if (_waitingTask != NULL) {
Signal(_waitingTask, (1ul << _cancelSignal));
_waitingTask = NULL;
}
Permit();
#elif defined(OF_HAVE_PIPE)
OFEnsure(write(_cancelFD[1], "", 1) > 0);
#elif defined(OF_WII)
OFEnsure(sendto(_cancelFD[1], "", 1, 0,
(struct sockaddr *)&_cancelAddr, 8) > 0);
#else
OFEnsure(sendto(_cancelFD[1], (void *)"", 1, 0,
(struct sockaddr *)&_cancelAddr, sizeof(_cancelAddr)) > 0);
#endif
}
@end
|