浏览代码

Rename 'MHD_USE_PIPE_FOR_SHUTDOWN' -> 'MHD_USE_ITC' to reflect real meaning of option

Evgeny Grin (Karlson2k) 9 年之前
父节点
当前提交
984e0e964e
共有 4 个文件被更改,包括 38 次插入36 次删除
  1. 5 5
      doc/libmicrohttpd.texi
  2. 24 22
      src/include/microhttpd.h
  3. 7 7
      src/microhttpd/daemon.c
  4. 2 2
      src/testcurl/test_quiesce.c

+ 5 - 5
doc/libmicrohttpd.texi

@@ -562,7 +562,7 @@ connect HTTP clients to the HTTP server.  This option is incompatible
 with using a thread pool; if it is used,
 @code{MHD_OPTION_THREAD_POOL_SIZE} is ignored.
 
-@item MHD_USE_PIPE_FOR_SHUTDOWN
+@item MHD_USE_ITC
 @cindex quiesce
 Force MHD to use a signal pipe to notify the event loop (of threads)
 of our shutdown.  This is required if an appliction uses
@@ -643,12 +643,12 @@ four for @code{stdin}, @code{stdout}, @code{stderr} and the server
 socket).  In other words, the default is as large as possible.
 
 If the connection limit is reached, MHD's behavior depends a bit on
-other options.  If @code{MHD_USE_PIPE_FOR_SHUTDOWN} was given, MHD
+other options.  If @code{MHD_USE_ITC} was given, MHD
 will stop accepting connections on the listen socket.  This will cause
 the operating system to queue connections (up to the @code{listen()}
 limit) above the connection limit.  Those connections will be held
 until MHD is done processing at least one of the active connections.
-If @code{MHD_USE_PIPE_FOR_SHUTDOWN} is not set, then MHD will continue
+If @code{MHD_USE_ITC} is not set, then MHD will continue
 to @code{accept()} and immediately @code{close()} these connections.
 
 Note that if you set a low connection limit, you can easily get into
@@ -1548,7 +1548,7 @@ server is behind NAT and needs to connect out to the
 HTTP client, or if you are building a proxy.
 
 If you use this API in conjunction with a internal select or a thread
-pool, you must set the option @code{MHD_USE_PIPE_FOR_SHUTDOWN} to
+pool, you must set the option @code{MHD_USE_ITC} to
 ensure that the freshly added connection is immediately processed by
 MHD.
 
@@ -2900,7 +2900,7 @@ MHD_USE_EPOLL_INTERNALLY can be used.
 @item MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET
 Get whether shutdown on listen socket to signal other
 threads is supported. If not supported flag
-MHD_USE_PIPE_FOR_SHUTDOWN is automatically forced.
+MHD_USE_ITC is automatically forced.
 
 @item MHD_FEATURE_SOCKETPAIR
 Get whether a @code{socketpair()} is used internally instead of

+ 24 - 22
src/include/microhttpd.h

@@ -635,22 +635,24 @@ enum MHD_FLAG
   MHD_USE_EPOLL_INTERNALLY
 
   /**
-   * Force MHD to use a signal pipe to notify the event loop (of
-   * threads) of our shutdown.  This is required if an appliction uses
-   * #MHD_USE_SELECT_INTERNALLY or #MHD_USE_THREAD_PER_CONNECTION and
-   * then performs #MHD_quiesce_daemon (which eliminates our ability
-   * to signal termination via the listen socket).  In these modes,
-   * #MHD_quiesce_daemon will fail if this option was not set.  Also,
-   * use of this option is automatic (as in, you do not even have to
-   * specify it), if #MHD_USE_NO_LISTEN_SOCKET is specified.  In
-   * "external" `select()` mode, this option is always simply ignored.
-   * MHD can be build for use a pair of sockets instead of a pipe.
-   * Pair of sockets is forced on W32.
-   *
-   * You must also use this option if you use internal select mode
-   * or a thread pool in conjunction with #MHD_add_connection.
-   */
-  MHD_USE_PIPE_FOR_SHUTDOWN = 1024,
+   * Use inter-thread communication channel.
+   * #MHD_USE_ITC can be used with internal select/poll/other
+   * or #MHD_USE_THREAD_PER_CONNECTION and is ignored with any
+   * "external" mode.
+   * It's required for use of #MHD_quiesce_daemon
+   * or #MHD_add_connection.
+   * This option is enforced by #MHD_USE_SUSPEND_RESUME or
+   * #MHD_USE_NO_LISTEN_SOCKET.
+   * #MHD_USE_ITC is always used automatically on platforms
+   * where select()/poll()/other ignore shutdown of listen
+   * socket.
+   */
+  MHD_USE_ITC = 1024,
+
+/** @deprecated */
+#define MHD_USE_PIPE_FOR_SHUTDOWN \
+  _MHD_DEPR_IN_MACRO("Value MHD_USE_PIPE_FOR_SHUTDOWN is deprecated, use MHD_USE_ITC") \
+  MHD_USE_ITC
 
   /**
    * Use a single socket for IPv4 and IPv6.
@@ -668,9 +670,9 @@ enum MHD_FLAG
 
   /**
    * Enable suspend/resume functions, which also implies setting up
-   * pipes to signal resume.
+   * ITC to signal resume.
    */
-  MHD_USE_SUSPEND_RESUME = 8192 | MHD_USE_PIPE_FOR_SHUTDOWN,
+  MHD_USE_SUSPEND_RESUME = 8192 | MHD_USE_ITC,
 
   /**
    * Enable TCP_FASTOPEN option.  This option is only available on Linux with a
@@ -1634,7 +1636,7 @@ MHD_start_daemon (unsigned int flags,
  * that an existing thread is still using it).
  *
  * Note that some thread modes require the caller to have passed
- * #MHD_USE_PIPE_FOR_SHUTDOWN when using this API.  If this daemon is
+ * #MHD_USE_ITC when using this API.  If this daemon is
  * in one of those modes and this option was not given to
  * #MHD_start_daemon, this function will return #MHD_INVALID_SOCKET.
  *
@@ -1666,7 +1668,7 @@ MHD_stop_daemon (struct MHD_Daemon *daemon);
  *
  * If you use this API in conjunction with a internal select or a
  * thread pool, you must set the option
- * #MHD_USE_PIPE_FOR_SHUTDOWN to ensure that the freshly added
+ * #MHD_USE_ITC to ensure that the freshly added
  * connection is immediately processed by MHD.
  *
  * The given client socket will be managed (and closed!) by MHD after
@@ -1968,7 +1970,7 @@ MHD_queue_response (struct MHD_Connection *connection,
  * thread-per-connection!) for a while.
  *
  * If you use this API in conjunction with a internal select or a
- * thread pool, you must set the option #MHD_USE_PIPE_FOR_SHUTDOWN to
+ * thread pool, you must set the option #MHD_USE_ITC to
  * ensure that a resumed connection is immediately processed by MHD.
  *
  * Suspended connections continue to count against the total number of
@@ -2798,7 +2800,7 @@ enum MHD_FEATURE
   /**
    * Get whether shutdown on listen socket to signal other
    * threads is supported. If not supported flag
-   * #MHD_USE_PIPE_FOR_SHUTDOWN is automatically forced.
+   * #MHD_USE_ITC is automatically forced.
    */
   MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET = 8,
 

+ 7 - 7
src/microhttpd/daemon.c

@@ -2112,7 +2112,7 @@ internal_add_connection (struct MHD_Daemon *daemon,
  * thread-per-connection!) for a while.
  *
  * If you use this API in conjunction with a internal select or a
- * thread pool, you must set the option #MHD_USE_PIPE_FOR_SHUTDOWN to
+ * thread pool, you must set the option #MHD_USE_ITC to
  * ensure that a resumed connection is immediately processed by MHD.
  *
  * Suspended connections continue to count against the total number of
@@ -2307,7 +2307,7 @@ resume_suspended_connections (struct MHD_Daemon *daemon)
  *
  * If you use this API in conjunction with a internal select or a
  * thread pool, you must set the option
- * #MHD_USE_PIPE_FOR_SHUTDOWN to ensure that the freshly added
+ * #MHD_USE_ITC to ensure that the freshly added
  * connection is immediately processed by MHD.
  *
  * The given client socket will be managed (and closed!) by MHD after
@@ -2878,7 +2878,7 @@ MHD_select (struct MHD_Daemon *daemon,
      place. */
   if ( (MHD_INVALID_SOCKET != daemon->socket_fd) &&
        (MHD_ITC_IS_VALID_(daemon->itc)) &&
-       (0 != (daemon->options & MHD_USE_PIPE_FOR_SHUTDOWN)) &&
+       (0 != (daemon->options & MHD_USE_ITC)) &&
        ( (daemon->connections == daemon->connection_limit) ||
          (MHD_YES == daemon->at_limit) ) )
     {
@@ -3742,7 +3742,7 @@ MHD_start_daemon (unsigned int flags,
  * sure that socket is not used anymore, call #MHD_stop_daemon.
  *
  * Note that some thread modes require the caller to have passed
- * #MHD_USE_PIPE_FOR_SHUTDOWN when using this API.  If this daemon is
+ * #MHD_USE_ITC when using this API.  If this daemon is
  * in one of those modes and this option was not given to
  * #MHD_start_daemon, this function will return #MHD_INVALID_SOCKET.
  *
@@ -3765,7 +3765,7 @@ MHD_quiesce_daemon (struct MHD_Daemon *daemon)
     {
 #ifdef HAVE_MESSAGES
       MHD_DLOG (daemon,
-		"Using MHD_quiesce_daemon in this mode requires MHD_USE_PIPE_FOR_SHUTDOWN\n");
+		"Using MHD_quiesce_daemon in this mode requires MHD_USE_ITC\n");
 #endif
       return MHD_INVALID_SOCKET;
     }
@@ -4448,7 +4448,7 @@ MHD_start_daemon_va (unsigned int flags,
   daemon->custom_error_log_cls = stderr;
 #endif
 #ifdef HAVE_LISTEN_SHUTDOWN
-  use_pipe = (0 != (daemon->options & (MHD_USE_NO_LISTEN_SOCKET | MHD_USE_PIPE_FOR_SHUTDOWN)));
+  use_pipe = (0 != (daemon->options & (MHD_USE_NO_LISTEN_SOCKET | MHD_USE_ITC)));
 #else
   use_pipe = 1; /* yes, must use pipe to signal shutdown */
 #endif
@@ -5271,7 +5271,7 @@ MHD_stop_daemon (struct MHD_Daemon *daemon)
     {
       /* fd might be MHD_INVALID_SOCKET here due to 'MHD_quiesce_daemon' */
       if ( (MHD_INVALID_SOCKET != fd) &&
-           (0 == (daemon->options & MHD_USE_PIPE_FOR_SHUTDOWN)) )
+           (0 == (daemon->options & MHD_USE_ITC)) )
 	(void) shutdown (fd,
                          SHUT_RDWR);
     }

+ 2 - 2
src/testcurl/test_quiesce.c

@@ -204,12 +204,12 @@ testGet (int type, int pool_count, int poll_flag)
   cbc.size = 2048;
   cbc.pos = 0;
   if (pool_count > 0) {
-    d = MHD_start_daemon (type | MHD_USE_DEBUG | MHD_USE_PIPE_FOR_SHUTDOWN | poll_flag,
+    d = MHD_start_daemon (type | MHD_USE_DEBUG | MHD_USE_ITC | poll_flag,
                           11080, NULL, NULL, &ahc_echo, "GET",
                           MHD_OPTION_THREAD_POOL_SIZE, pool_count, MHD_OPTION_END);
 
   } else {
-    d = MHD_start_daemon (type | MHD_USE_DEBUG | MHD_USE_PIPE_FOR_SHUTDOWN | poll_flag,
+    d = MHD_start_daemon (type | MHD_USE_DEBUG | MHD_USE_ITC | poll_flag,
                           11080, NULL, NULL, &ahc_echo, "GET", MHD_OPTION_END);
   }
   if (d == NULL)