提交 d9fac6c0 编写于 作者: A antirez

possible fix for a failed assertion introduced with the latest diskstore speedup fix

上级 0b537972
......@@ -325,8 +325,12 @@ void freeIOJob(iojob *j) {
* of an unix pipe in order to "awake" the main thread, and this function
* is called.
*
* If privdata != NULL the function will try to put more jobs in the queue
* of IO jobs to process as more room is made. */
* If privdata == NULL the function will try to put more jobs in the queue
* of IO jobs to process as more room is made. privdata is equal to NULL
* when the function is called from the event loop, so we want to push
* more IO jobs in the queue. Instead when the function is called by
* other functions that want to create a write-barrier to avoid race
* conditions we don't push new jobs in the queue. */
void vmThreadedIOCompletedJob(aeEventLoop *el, int fd, void *privdata,
int mask)
{
......@@ -392,7 +396,7 @@ void vmThreadedIOCompletedJob(aeEventLoop *el, int fd, void *privdata,
freeIOJob(j);
}
processed++;
if (privdata != NULL) cacheScheduleIOPushJobs(0);
if (privdata == NULL) cacheScheduleIOPushJobs(0);
if (processed == toprocess) return;
}
if (retval < 0 && errno != EAGAIN) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册