gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r9165 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r9165 - gnunet/src/util
Date: Sat, 17 Oct 2009 15:20:13 -0600

Author: grothoff
Date: 2009-10-17 15:20:13 -0600 (Sat, 17 Oct 2009)
New Revision: 9165

Modified:
   gnunet/src/util/network.c
Log:
use nodelay for a MAJOR performance boost for GNUnet code

Modified: gnunet/src/util/network.c
===================================================================
--- gnunet/src/util/network.c   2009-10-17 20:58:41 UTC (rev 9164)
+++ gnunet/src/util/network.c   2009-10-17 21:20:13 UTC (rev 9165)
@@ -125,6 +125,23 @@
 
 
 /**
+ * Disable delays when sending data via the socket.
+ * (GNUnet makes sure that messages are as big as
+ * possible already).
+ *
+ * @param h the socket to make non-delaying
+ */
+static void
+socket_set_nodelay (const struct GNUNET_NETWORK_Handle
+                   *h)
+{
+  int value = 1;
+  setsockopt (h->fd, IPPROTO_TCP, TCP_NODELAY, &value, sizeof(value));
+}
+
+
+
+/**
  * accept a new connection on a socket
  *
  * @param desc bound socket
@@ -170,6 +187,7 @@
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
                         "socket_set_inheritable");
 #endif
+  socket_set_nodelay (ret);
   return ret;
 }
 
@@ -476,6 +494,8 @@
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR | GNUNET_ERROR_TYPE_BULK,
                         "socket_set_inheritable");
 #endif
+  if (type == SOCK_STREAM)
+    socket_set_nodelay (ret);
 
   return ret;
 }





reply via email to

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