提交 5c66e5f2 编写于 作者: H Hongze Cheng

more work

上级 218fe42c
...@@ -23,8 +23,8 @@ extern "C" { ...@@ -23,8 +23,8 @@ extern "C" {
#endif #endif
#define vnodeShouldCommit vnodeBufPoolIsFull #define vnodeShouldCommit vnodeBufPoolIsFull
int vnodeSyncCommit(SVnode *pVnode);
int vnodeAsyncCommit(SVnode *pVnode); int vnodeAsyncCommit(SVnode *pVnode);
int vnodeCommit(void *arg);
#ifdef __cplusplus #ifdef __cplusplus
} }
......
...@@ -15,10 +15,14 @@ ...@@ -15,10 +15,14 @@
#include "vnodeDef.h" #include "vnodeDef.h"
static int vnodeStartCommit(SVnode *pVnode); static int vnodeStartCommit(SVnode *pVnode);
static int vnodeEndCommit(SVnode *pVnode); static int vnodeEndCommit(SVnode *pVnode);
static int vnodeCommit(void *arg);
static void vnodeWaitCommit(SVnode *pVnode);
int vnodeAsyncCommit(SVnode *pVnode) { int vnodeAsyncCommit(SVnode *pVnode) {
vnodeWaitCommit(pVnode);
vnodeBufPoolSwitch(pVnode); vnodeBufPoolSwitch(pVnode);
SVnodeTask *pTask = (SVnodeTask *)malloc(sizeof(*pTask)); SVnodeTask *pTask = (SVnodeTask *)malloc(sizeof(*pTask));
...@@ -33,7 +37,13 @@ int vnodeAsyncCommit(SVnode *pVnode) { ...@@ -33,7 +37,13 @@ int vnodeAsyncCommit(SVnode *pVnode) {
return 0; return 0;
} }
int vnodeCommit(void *arg) { int vnodeSyncCommit(SVnode *pVnode) {
vnodeAsyncCommit(pVnode);
vnodeWaitCommit(pVnode);
return 0;
}
static int vnodeCommit(void *arg) {
SVnode *pVnode = (SVnode *)arg; SVnode *pVnode = (SVnode *)arg;
metaCommit(pVnode->pMeta); metaCommit(pVnode->pMeta);
...@@ -42,7 +52,6 @@ int vnodeCommit(void *arg) { ...@@ -42,7 +52,6 @@ int vnodeCommit(void *arg) {
vnodeBufPoolRecycle(pVnode); vnodeBufPoolRecycle(pVnode);
tsem_post(&(pVnode->canCommit)); tsem_post(&(pVnode->canCommit));
// TODO
return 0; return 0;
} }
...@@ -54,4 +63,6 @@ static int vnodeStartCommit(SVnode *pVnode) { ...@@ -54,4 +63,6 @@ static int vnodeStartCommit(SVnode *pVnode) {
static int vnodeEndCommit(SVnode *pVnode) { static int vnodeEndCommit(SVnode *pVnode) {
// TODO // TODO
return 0; return 0;
} }
\ No newline at end of file
static FORCE_INLINE void vnodeWaitCommit(SVnode *pVnode) { tsem_wait(&pVnode->canCommit); }
\ No newline at end of file
...@@ -137,6 +137,7 @@ static int vnodeOpenImpl(SVnode *pVnode) { ...@@ -137,6 +137,7 @@ static int vnodeOpenImpl(SVnode *pVnode) {
} }
static void vnodeCloseImpl(SVnode *pVnode) { static void vnodeCloseImpl(SVnode *pVnode) {
vnodeSyncCommit(pVnode);
if (pVnode) { if (pVnode) {
vnodeCloseBufPool(pVnode); vnodeCloseBufPool(pVnode);
metaClose(pVnode->pMeta); metaClose(pVnode->pMeta);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册