提交 33bda8c3 编写于 作者: A Alex Duan

fix: check begin_thread return error

上级 b298cb83
......@@ -216,10 +216,17 @@ void dnodeSendRpcVWriteRsp(void *pVnode, void *wparam, int32_t code) {
// first add to list
vnodeAddWait(pVnode, NULL, pWrite->rspRet.psem, pWrite);
pthread_t* thread = taosCreateThread(waitingResultThread, pWrite);
if(thread == NULL) {
dError(":SDEL pVnode:%p pWrite=%p create thread error.", pWrite->pVnode, pWrite);
rpcSendResponse(&rpcRsp);
vnodeRemoveWait(pWrite->pVnode, pWrite);
vnodeFreeFromWQueue(pVnode, pWrite);
} else {
// set thread
vnodeSetWait(pVnode, thread, pWrite);
}
}
}
}
static void *dnodeProcessVWriteQueue(void *wparam) {
......
......@@ -31,6 +31,7 @@ pthread_t* taosCreateThread( void *(*__start_routine) (void *), void* param) {
pthread_attr_destroy(&thattr);
if (ret != 0) {
uError("failed to create thread code=%d since %s", ret, strerror(ret));
free(pthread);
return NULL;
}
......
......@@ -686,6 +686,7 @@ void vnodeRemoveWait(void* vparam, void* param) {
SVnodeObj* pVnode = (SVnodeObj* )vparam;
SListIter iter = {0};
vInfo("vgId:%d :SDEL enter remove-wait pWrite=%p list count=%d ", pVnode->vgId, param, listNEles(pVnode->waitThreads));
tsem_wait(&pVnode->semWait);
tdListInitIter(pVnode->waitThreads, &iter, TD_LIST_FORWARD);
......@@ -697,15 +698,18 @@ void vnodeRemoveWait(void* vparam, void* param) {
SWaitThread * pWaitThread = (SWaitThread *)pNode->data;
if (pWaitThread->param == param) {
// found , free SWaitThread memeber
if (pWaitThread->pthread) {
free(pWaitThread->pthread);
}
tdListPopNode(pVnode->waitThreads, pNode);
vDebug("vgId:%d :SDEL removed wait thread %p wait list count=%d ", pVnode->vgId, param, listNEles(pVnode->waitThreads));
vInfo("vgId:%d :SDEL deleted remove-wait pWrite=%p list count=%d ", pVnode->vgId, param, listNEles(pVnode->waitThreads));
// free pListNode self
free(pNode);
break;
}
}
tsem_post(&pVnode->semWait);
vInfo("vgId:%d :SDEL end remove-wait pWrite=%p list count=%d ", pVnode->vgId, param, listNEles(pVnode->waitThreads));
}
// get wait thread count
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册