gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r32390 - libmicrohttpd/src/microhttpd


From: gnunet
Subject: [GNUnet-SVN] r32390 - libmicrohttpd/src/microhttpd
Date: Tue, 18 Feb 2014 19:37:13 +0100

Author: Karlson2k
Date: 2014-02-18 19:37:13 +0100 (Tue, 18 Feb 2014)
New Revision: 32390

Modified:
   libmicrohttpd/src/microhttpd/memorypool.c
Log:
memorypool.c: use native memory function for W32

Modified: libmicrohttpd/src/microhttpd/memorypool.c
===================================================================
--- libmicrohttpd/src/microhttpd/memorypool.c   2014-02-18 18:34:36 UTC (rev 
32389)
+++ libmicrohttpd/src/microhttpd/memorypool.c   2014-02-18 18:37:13 UTC (rev 
32390)
@@ -71,7 +71,7 @@
   size_t end;
 
   /**
-   * #MHD_NO if pool was malloc'ed, #MHD_YES if mmapped.
+   * #MHD_NO if pool was malloc'ed, #MHD_YES if mmapped (VirtualAlloc'ed for 
W32).
    */
   int is_mmap;
 };
@@ -91,12 +91,17 @@
   pool = malloc (sizeof (struct MemoryPool));
   if (NULL == pool)
     return NULL;
-#ifdef MAP_ANONYMOUS
+#if defined(MAP_ANONYMOUS) || defined(_WIN32)
   if (max <= 32 * 1024)
     pool->memory = MAP_FAILED;
   else
-    pool->memory = MMAP (NULL, max, PROT_READ | PROT_WRITE,
+#if defined(MAP_ANONYMOUS) && !defined(_WIN32)
+    pool->memory = mmap (NULL, max, PROT_READ | PROT_WRITE,
                         MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+#elif defined(_WIN32)
+    pool->memory = VirtualAlloc(NULL, max, MEM_COMMIT | MEM_RESERVE,
+        PAGE_READWRITE);
+#endif
 #else
   pool->memory = MAP_FAILED;
 #endif
@@ -134,7 +139,13 @@
   if (pool->is_mmap == MHD_NO)
     free (pool->memory);
   else
-    MUNMAP (pool->memory, pool->size);
+#if defined(MAP_ANONYMOUS) && !defined(_WIN32)
+    munmap (pool->memory, pool->size);
+#elif defined(_WIN32)
+    VirtualFree(pool->memory, 0, MEM_RELEASE);
+#else
+    abort();
+#endif
   free (pool);
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]