Changeset: 9a2786a0236b for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9a2786a0236b
Modified Files:
gdk/gdk_storage.c
Branch: Dec2016
Log Message:
Merge.
diffs (54 lines):
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -637,6 +637,7 @@ DESCclean(BAT *b)
#define MSYNC_BACKGROUND
#ifndef DISABLE_MSYNC
+#ifndef MS_ASYNC
struct msync {
bat id;
Heap *h;
@@ -646,26 +647,24 @@ static void
BATmsyncImplementation(void *arg)
{
Heap *h = ((struct msync *) arg)->h;
- char *adr;
- size_t len;
- size_t offset;
- adr = h->base;
- offset = ((size_t) adr % MT_pagesize());
- len = MT_pagesize() * (1 + ((h->base + h->free - adr) / MT_pagesize()));
- if (offset)
- adr -= MT_pagesize() - offset;
- if (len)
- (void) MT_msync(adr, len);
+ (void) MT_msync(h->base, h->size);
BBPunfix(((struct msync *) arg)->id);
GDKfree(arg);
}
#endif
+#endif
void
BATmsync(BAT *b)
{
#ifndef DISABLE_MSYNC
+#ifdef MS_ASYNC
+ if (b->theap.storage == STORE_MMAP)
+ (void) msync(b->theap.base, b->theap.free, MS_ASYNC);
+ if (b->tvheap && b->tvheap->storage == STORE_MMAP)
+ (void) msync(b->tvheap->base, b->tvheap->free, MS_ASYNC);
+#else
#ifdef MSYNC_BACKGROUND
MT_Id tid;
#endif
@@ -703,6 +702,7 @@ BATmsync(BAT *b)
BATmsyncImplementation(arg);
#endif
}
+#endif
#else
(void) b;
#endif /* DISABLE_MSYNC */
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list