Changeset 58f99b3
- Timestamp:
- Jan 12, 2021, 12:44:15 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- d48b174
- Parents:
- 426f60c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/io/setup.cfa
r426f60c r58f99b3 310 310 } 311 311 312 extern void signal_unblock( int sig );313 extern void signal_block ( int sig );314 315 312 static void __io_create( __io_data & this, const io_context_params & params_in ) { 316 313 // Step 1 : call to setup … … 431 428 cq.cqes = (struct io_uring_cqe *)(((intptr_t)cq.ring_ptr) + params.cq_off.cqes); 432 429 433 signal_block( SIGUSR1 );434 435 430 // Step 4 : eventfd 436 int efd = eventfd(0, 0); 437 if (efd < 0) { 438 abort("KERNEL ERROR: IO_URING EVENTFD - %s\n", strerror(errno)); 439 } 440 441 int ret = syscall( __NR_io_uring_register, fd, IORING_REGISTER_EVENTFD, &efd, 1); 442 if (ret < 0) { 443 abort("KERNEL ERROR: IO_URING EVENTFD REGISTER - %s\n", strerror(errno)); 444 } 445 446 signal_unblock( SIGUSR1 ); 431 int efd; 432 for() { 433 efd = eventfd(0, 0); 434 if (efd < 0) { 435 if (errno == EINTR) continue; 436 abort("KERNEL ERROR: IO_URING EVENTFD - %s\n", strerror(errno)); 437 } 438 break; 439 } 440 441 int ret; 442 for() { 443 ret = syscall( __NR_io_uring_register, fd, IORING_REGISTER_EVENTFD, &efd, 1); 444 if (ret < 0) { 445 if (errno == EINTR) continue; 446 abort("KERNEL ERROR: IO_URING EVENTFD REGISTER - %s\n", strerror(errno)); 447 } 448 break; 449 } 447 450 448 451 // some paranoid checks
Note: See TracChangeset
for help on using the changeset viewer.