]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Windows: fix collision between POSIX wrappers and DiskIO class methods
authorAmos Jeffries <squid3@treenet.co.nz>
Tue, 3 Sep 2013 09:05:02 +0000 (21:05 +1200)
committerAmos Jeffries <squid3@treenet.co.nz>
Tue, 3 Sep 2013 09:05:02 +0000 (21:05 +1200)
The POSIX function shutdown() is #define'd on Windows. This causes
compiler issues with the DiskIO method of same name. Rename the method
to gracefulShutdown() instead.

Also, Bug 3189 was incomplete and missed a change to DiskThreads
Windows initialization method.

  This is an iCelero project.

17 files changed:
src/DiskIO/AIO/AIODiskIOModule.cc
src/DiskIO/AIO/AIODiskIOModule.h
src/DiskIO/AIO/aio_win32.cc
src/DiskIO/Blocking/BlockingDiskIOModule.cc
src/DiskIO/Blocking/BlockingDiskIOModule.h
src/DiskIO/DiskDaemon/DiskDaemonDiskIOModule.cc
src/DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h
src/DiskIO/DiskIOModule.cc
src/DiskIO/DiskIOModule.h
src/DiskIO/DiskThreads/CommIO.cc
src/DiskIO/DiskThreads/DiskThreadsDiskIOModule.cc
src/DiskIO/DiskThreads/DiskThreadsDiskIOModule.h
src/DiskIO/DiskThreads/aiops_win32.cc
src/DiskIO/IpcIo/IpcIoDiskIOModule.cc
src/DiskIO/IpcIo/IpcIoDiskIOModule.h
src/DiskIO/Mmapped/MmappedDiskIOModule.cc
src/DiskIO/Mmapped/MmappedDiskIOModule.h

index e0706035882901262803600745cf4dc262e2e267..9b4d2e43c9386986f64fca399900a739c7919174 100644 (file)
@@ -50,7 +50,7 @@ AIODiskIOModule::init()
 {}
 
 void
-AIODiskIOModule::shutdown()
+AIODiskIOModule::gracefulShutdown()
 {}
 
 DiskIOStrategy *
index 68250ff87d6d7e400c9a3c27574abf51f2a7f9ec..540185810f331b5da161ce37ff40af67500d0145 100644 (file)
@@ -42,7 +42,7 @@ public:
     static AIODiskIOModule &GetInstance();
     AIODiskIOModule();
     virtual void init();
-    virtual void shutdown();
+    virtual void gracefulShutdown();
     virtual char const *type () const;
     virtual DiskIOStrategy* createStrategy();
 
index 7538dc998b927fdb73e4c42464a72b4f9c83f8b4..a7504a28c4dcf1c7b39f83c6d7ff532359a8e8e9 100644 (file)
  */
 
 #include "squid.h"
+#include "DiskIO/AIO/aio_win32.h"
 #include "comm.h"
-#include "aio_win32.h"
+#include "fd.h"
+#include "StatCounters.h"
+#include "win32.h"
 
 #if HAVE_ERRNO_H
 #include <errno.h>
index 049f35e3301e82b98a9fbaeac2f7c1235802e0a4..577f2dbbf250beb0487f982977b936efe8acd9e0 100644 (file)
@@ -49,7 +49,7 @@ BlockingDiskIOModule::init()
 {}
 
 void
-BlockingDiskIOModule::shutdown()
+BlockingDiskIOModule::gracefulShutdown()
 {}
 
 DiskIOStrategy*
index 37d2a73c928ae5c6683f405239a3204638e507c4..e2d67572e2043f59a65b11da2e05c0372c958b6d 100644 (file)
@@ -41,7 +41,7 @@ public:
     static BlockingDiskIOModule &GetInstance();
     BlockingDiskIOModule();
     virtual void init();
-    virtual void shutdown();
+    virtual void gracefulShutdown();
     virtual char const *type () const;
     virtual DiskIOStrategy* createStrategy();
 
index 6b9c959034a500e58ceba72044c5c41612607d68..77c96df8a6643deeb3131a6aa5d9fbe338a5debc 100644 (file)
@@ -79,7 +79,7 @@ DiskDaemonDiskIOModule::registerWithCacheManager(void)
 }
 
 void
-DiskDaemonDiskIOModule::shutdown()
+DiskDaemonDiskIOModule::gracefulShutdown()
 {
     initialised = false;
 }
index 22564c2769c7fc2681abec725f2b982f6dc4d507..63a5c3a9a53ea2f2d1af634856f9da37f077d22f 100644 (file)
@@ -41,7 +41,7 @@ public:
     static DiskDaemonDiskIOModule &GetInstance();
     DiskDaemonDiskIOModule();
     virtual void init();
-    virtual void shutdown();
+    virtual void gracefulShutdown();
     virtual char const *type () const;
     virtual DiskIOStrategy* createStrategy();
 
index 48a58c9ced6164f75f1e6d0d26375e53abf18bcf..0bc3278ac086a15dd19596b5251c360b81b0d805 100644 (file)
@@ -95,7 +95,7 @@ DiskIOModule::FreeAllModules()
     while (GetModules().size()) {
         DiskIOModule *fs = GetModules().back();
         GetModules().pop_back();
-        fs->shutdown();
+        fs->gracefulShutdown();
     }
 }
 
index b8d18a0970778302a10ac375ef93607d6afb4552..ad05153c942482e2e5b1baf9f19ae0076bd88d4f 100644 (file)
@@ -65,7 +65,7 @@ public:
 
     virtual void init() = 0;
     //virtual void registerWithCacheManager(void);
-    virtual void shutdown() = 0;
+    virtual void gracefulShutdown() = 0;
     virtual DiskIOStrategy *createStrategy() = 0;
 
     virtual char const *type () const = 0;
index 87b43987bbcaf4714419d482ef35c38b9b80ca8d..ea174f5fe927e65c6e8fe6bae7e602287bad249d 100644 (file)
@@ -37,6 +37,7 @@
 #include "DiskIO/DiskThreads/CommIO.h"
 #include "fd.h"
 #include "globals.h"
+#include "win32.h"
 
 void
 CommIO::Initialize()
index 9139fca8b0a5bb1413d1c14a13d61b6f43fb0089..2187d0f98921c53bebaba21e07785ba763e5d9df 100644 (file)
@@ -52,7 +52,7 @@ DiskThreadsDiskIOModule::init()
 }
 
 void
-DiskThreadsDiskIOModule::shutdown()
+DiskThreadsDiskIOModule::gracefulShutdown()
 {
     DiskThreadsIOStrategy::Instance.done();
 }
index 8a9d72d0cac85f1554c9ed4cdeaaed9decf81050..7ff5333d3e4a894b1adc16eafb0a78c653f27ba2 100644 (file)
@@ -42,7 +42,7 @@ public:
     DiskThreadsDiskIOModule();
     virtual void init();
     //virtual void registerWithCacheManager(void);
-    virtual void shutdown();
+    virtual void gracefulShutdown();
     virtual char const *type () const;
     virtual DiskIOStrategy* createStrategy();
 
index 1c322a5940f2469c71d878ef041203308a388059..9701e7cbb1abe4aa8824c0c6b091ceae6223142b 100644 (file)
@@ -35,6 +35,7 @@
 #include "squid.h"
 #include "DiskIO/DiskThreads/CommIO.h"
 #include "DiskThreads.h"
+#include "fd.h"
 #include "SquidConfig.h"
 #include "SquidTime.h"
 #include "Store.h"
@@ -209,7 +210,7 @@ squidaio_xfree(void *p, int size)
     MemAllocator *pool;
 
     if ((pool = squidaio_get_pool(size)) != NULL) {
-        pool->free(p);
+        pool->freeOne(p);
     } else
         xfree(p);
 }
@@ -221,7 +222,7 @@ squidaio_xstrfree(char *str)
     int len = strlen(str) + 1;
 
     if ((pool = squidaio_get_pool(len)) != NULL) {
-        pool->free(str);
+        pool->freeOne(str);
     } else
         xfree(str);
 }
@@ -295,7 +296,9 @@ squidaio_init(void)
 
     done_queue.blocked = 0;
 
-    CommIO::NotifyIOCompleted();
+    // Initialize the thread I/O pipes before creating any threads
+    // see bug 3189 comment 5 about race conditions.
+    CommIO::Initialize();
 
     /* Create threads and get them to sit in their wait loop */
     squidaio_thread_pool = memPoolCreate("aio_thread", sizeof(squidaio_thread_t));
@@ -715,7 +718,7 @@ squidaio_cleanup_request(squidaio_request_t * requestp)
         resultp->aio_errno = requestp->err;
     }
 
-    squidaio_request_pool->free(requestp);
+    squidaio_request_pool->freeOne(requestp);
 }                              /* squidaio_cleanup_request */
 
 int
index 30598a3d1afa7b998c58c9d13e5821c7337f7cb0..f30aae34b24ca66fd8e526615a3a04fff603c77a 100644 (file)
@@ -18,7 +18,7 @@ IpcIoDiskIOModule::init()
 {}
 
 void
-IpcIoDiskIOModule::shutdown()
+IpcIoDiskIOModule::gracefulShutdown()
 {}
 
 DiskIOStrategy*
index 92e1cf244efa57c381b9e8fccc218610483a2d2b..cdbf6835044cb63448fe64aff060797c12d7aa5b 100644 (file)
@@ -10,7 +10,7 @@ public:
     static IpcIoDiskIOModule &GetInstance();
     IpcIoDiskIOModule();
     virtual void init();
-    virtual void shutdown();
+    virtual void gracefulShutdown();
     virtual char const *type () const;
     virtual DiskIOStrategy* createStrategy();
 
index a75b7f440445e4650dfa9fcfbf9c5bdc40fc6298..d3351fe19afd583dd42d9430371fbafa454bc2c1 100644 (file)
@@ -18,7 +18,7 @@ MmappedDiskIOModule::init()
 {}
 
 void
-MmappedDiskIOModule::shutdown()
+MmappedDiskIOModule::gracefulShutdown()
 {}
 
 DiskIOStrategy*
index fe06e27827c78be5baac9a7a7ab33b0631fbd959..daa7e8a74161cdd7bf6c49c86d345b943bbb02a3 100644 (file)
@@ -10,7 +10,7 @@ public:
     static MmappedDiskIOModule &GetInstance();
     MmappedDiskIOModule();
     virtual void init();
-    virtual void shutdown();
+    virtual void gracefulShutdown();
     virtual char const *type () const;
     virtual DiskIOStrategy* createStrategy();