提交 983339f1 编写于 作者: H Hongze Cheng

more

上级 64f29040
...@@ -260,17 +260,23 @@ int tdbPagerFetchPage(SPager *pPager, SPgno pgno, SPage **ppPage) { ...@@ -260,17 +260,23 @@ int tdbPagerFetchPage(SPager *pPager, SPgno pgno, SPage **ppPage) {
if (pPage->pPager == NULL) { if (pPage->pPager == NULL) {
ASSERT(pgno < pPager->dbOrigSize); ASSERT(pgno < pPager->dbOrigSize);
ret = tdbPagerReadPage(pPager, pPage); // tdbWLockPage(pPage);
if (ret < 0) {
return -1; if (pPage->pPager == NULL) {
} ret = tdbPagerReadPage(pPager, pPage);
if (ret < 0) {
return -1;
}
// ret = (*initPage)(pPage); // ret = (*initPage)(pPage);
// if (ret < 0) { // if (ret < 0) {
// return -1; // return -1;
// } // }
pPage->pPager = pPager; pPage->pPager = pPager;
}
// tdbWUnlockPage(pPage);
} else { } else {
ASSERT(pPage->pPager == pPager); ASSERT(pPage->pPager == pPager);
} }
...@@ -302,9 +308,18 @@ int tdbPagerNewPage(SPager *pPager, SPgno *ppgno, SPage **ppPage) { ...@@ -302,9 +308,18 @@ int tdbPagerNewPage(SPager *pPager, SPgno *ppgno, SPage **ppPage) {
ASSERT(pPage->pPager == NULL); ASSERT(pPage->pPager == NULL);
// TODO: a race condition problem may occur here
// tdbWLockPage(pPage);
// TODO: zero init the new page // TODO: zero init the new page
// (*initNewPage)(pPage, arg); // (*initNewPage)(pPage, arg);
pPage->pPager = NULL;
// tdbWunlockPage(pPage);
*ppPage = pPage; *ppPage = pPage;
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册