Author: kpvdr
Date: 2011-12-16 10:29:51 -0500 (Fri, 16 Dec 2011)
New Revision: 4487
Modified:
store/trunk/cpp/lib/jrnl/wmgr.cpp
Log:
BZ 768407 - fix for not handling EINTR from ::io_getevents()
Modified: store/trunk/cpp/lib/jrnl/wmgr.cpp
===================================================================
--- store/trunk/cpp/lib/jrnl/wmgr.cpp 2011-12-08 21:56:42 UTC (rev 4486)
+++ store/trunk/cpp/lib/jrnl/wmgr.cpp 2011-12-16 15:29:51 UTC (rev 4487)
@@ -671,6 +671,8 @@
int ret = 0;
if ((ret = aio::getevents(_ioctx, flush ? _aio_evt_rem : 1,
_aio_evt_rem/*_cache_num_pages + _jc->num_jfiles()*/, _aio_event_arr, timeout)) <
0)
{
+ if (ret == -EINTR) // Interrupted by signal
+ return 0;
std::ostringstream oss;
oss << "io_getevents() failed: " << std::strerror(-ret)
<< " (" << ret << ")";
throw jexception(jerrno::JERR__AIO, oss.str(), "wmgr",
"get_events");
Show replies by date