Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 5a40e4e279bddd2729dfb277bdde6cf6ef6b76d3)
+++ libcfa/src/concurrency/kernel.cfa	(revision 56e5b241ad50d0c4832190cb96c278e95582f21f)
@@ -231,8 +231,21 @@
 				__cfadbg_print_safe(runtime_core, "Kernel : core %p waiting on eventfd %d\n", this, this->idle);
 
-				__disable_interrupts_hard();
-				eventfd_t val;
-				eventfd_read( this->idle, &val );
-				__enable_interrupts_hard();
+				{
+					eventfd_t val;
+					ssize_t ret = read( this->idle, &val, sizeof(val) );
+					if(ret < 0) {
+						switch((int)errno) {
+						case EAGAIN:
+						#if EAGAIN != EWOULDBLOCK
+							case EWOULDBLOCK:
+						#endif
+						case EINTR:
+							// No need to do anything special here, just assume it's a legitimate wake-up
+							break;
+						default:
+							abort( "KERNEL : internal error, read failure on idle eventfd, error(%d) %s.", (int)errno, strerror( (int)errno ) );
+						}
+					}
+				}
 
 				#if !defined(__CFA_NO_STATISTICS__)
