more work
This commit is contained in:
parent
218fe42c0f
commit
5c66e5f2c2
|
@ -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 @@
|
||||||
|
|
||||||
#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) {
|
||||||
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) {
|
||||||
|
|
||||||
vnodeBufPoolRecycle(pVnode);
|
vnodeBufPoolRecycle(pVnode);
|
||||||
tsem_post(&(pVnode->canCommit));
|
tsem_post(&(pVnode->canCommit));
|
||||||
// TODO
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,3 +64,5 @@ static int vnodeEndCommit(SVnode *pVnode) {
|
||||||
// TODO
|
// TODO
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FORCE_INLINE void vnodeWaitCommit(SVnode *pVnode) { tsem_wait(&pVnode->canCommit); }
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue