Changeset 56e5b24
- Timestamp:
- Sep 13, 2021, 1:41:57 PM (3 years ago)
- Branches:
- ADT, ast-experimental, enum, forall-pointer-decay, master, pthread-emulation, qualifiedEnum
- Children:
- b5ec090
- Parents:
- 821c534
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/kernel.cfa
r821c534 r56e5b24 231 231 __cfadbg_print_safe(runtime_core, "Kernel : core %p waiting on eventfd %d\n", this, this->idle); 232 232 233 __disable_interrupts_hard(); 234 eventfd_t val; 235 eventfd_read( this->idle, &val ); 236 __enable_interrupts_hard(); 233 { 234 eventfd_t val; 235 ssize_t ret = read( this->idle, &val, sizeof(val) ); 236 if(ret < 0) { 237 switch((int)errno) { 238 case EAGAIN: 239 #if EAGAIN != EWOULDBLOCK 240 case EWOULDBLOCK: 241 #endif 242 case EINTR: 243 // No need to do anything special here, just assume it's a legitimate wake-up 244 break; 245 default: 246 abort( "KERNEL : internal error, read failure on idle eventfd, error(%d) %s.", (int)errno, strerror( (int)errno ) ); 247 } 248 } 249 } 237 250 238 251 #if !defined(__CFA_NO_STATISTICS__)
Note: See TracChangeset
for help on using the changeset viewer.