Changeset c59a346 for libcfa/src/concurrency/io.cfa
- Timestamp:
- Apr 29, 2020, 3:49:30 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- f6660520
- Parents:
- 44aad8f
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/io.cfa
r44aad8f rc59a346 75 75 #endif 76 76 77 78 77 //============================================================================================= 79 78 // I/O Startup / Shutdown logic … … 150 149 sq.array = ( uint32_t *)(((intptr_t)sq.ring_ptr) + params.sq_off.array); 151 150 sq.alloc = *sq.tail; 151 sq.ready = *sq.tail; 152 152 153 153 // completion queue … … 190 190 void __kernel_io_shutdown( cluster & this ) { 191 191 // Stop the IO Poller 192 #if __CFA_IO_POLLING__ == __CFA_IO_POLLING_NAIVE__ 192 193 // Notify the poller thread of the shutdown 193 194 __atomic_store_n(&this.io.done, true, __ATOMIC_SEQ_CST); … … 245 246 // Process a single completion message from the io_uring 246 247 // This is NOT thread-safe 247 int __drain_io( struct io_ring & ring, sigset_t & mask, int waitcnt ) {248 static int __drain_io( struct io_ring & ring, sigset_t & mask, int waitcnt ) { 248 249 int ret = syscall( __NR_io_uring_enter, ring.fd, 0, waitcnt, IORING_ENTER_GETEVENTS, &mask, _NSIG / 8); 249 250 if( ret < 0 ) {
Note: See TracChangeset
for help on using the changeset viewer.