Optimize cache in tbtree. Fix small bug in psort and move on tmalloc psortex
[tedtools.git] / tbtree.h
index fa11321..612913b 100644 (file)
--- a/tbtree.h
+++ b/tbtree.h
@@ -84,17 +84,19 @@ typedef struct {
        char    data[TBTREEPAGESIZE-TBTPAGEHDRSZ];      
 } TBTPage;
 
-typedef struct {
+typedef struct TBTMemPage {
        u_int32_t       pagenumber;
-       struct timeval last;
        u_int32_t
                issynced:1,
                iscached:1,
                islocked:1,
                unused:29;
+       struct TBTMemPage *prev;
+       struct TBTMemPage *next;
        TBTPage page;
 } TBTMemPage;
 
+#define TBTMEMPAGEHDRSZ (sizeof(u_int32_t)*2 + sizeof(TBTMemPage*)*2 + TBTPAGEHDRSZ)
 typedef struct {
        u_int16_t       length;
        char            *value;
@@ -119,7 +121,8 @@ typedef struct {
        u_int32_t       npage;
        u_int32_t       curpage;
        TBTMemPage      **Cache;
-       TBTMemPage      **TimeCache;
+       TBTMemPage      *TimeCache;
+       TBTMemPage      *TimeCacheLast;
        u_int32_t       lastpagenumber;
 
        /* stat subsystem */