struct _BlueSkyLog {
char *log_directory;
GAsyncQueue *queue;
- int fd;
+ int fd, dirfd;
int seq_num;
+ GSList *committed;
+
+ /* Cache of log segments which have been memory-mapped. */
+ GMutex *mmap_lock;
+ GHashTable *mmap_cache;
};
BlueSkyLog *bluesky_log_new(const char *log_directory);