summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-15 19:38:49 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-06-15 19:38:49 +0000
commitb9a91334c50e5a0b8ea0a4b571cd3011228cba6c (patch)
tree2c2943128de42db8c8eba898a1c402c7d8bf8ca1 /ChangeLog
parent91af3e00d1bdf7aab0d8f413ebbc5494d017f08c (diff)
socket: allow exception-free nonblocking sendmsg/recvmsg
As documented before, exceptions are expensive and IO::Wait*able are too common in socket applications to be the exceptional case. Datagram sockets deserve the same API which stream sockets are allowed with read_nonblock and write_nonblock. Note: this does not offer a performance advantage under optimal conditions when both ends are equally matched in speed, but it it does make debug output cleaner by avoiding exceptions whenever the receiver slows down. * ext/socket/ancdata.c (bsock_sendmsg_internal, bsock_recvmsg_internal): support "exception: false" kwarg * ext/socket/init.c (rsock_s_recvfrom_nonblock): ditto * ext/socket/init.c (rsock_s_recvfrom_nonblock): use rsock_opt_false_p * ext/socket/socket.c (sock_connect_nonblock): ditto * ext/socket/rubysocket.h (rsock_opt_false_p): new function * ext/socket/basicsocket.c (bsock_recv_nonblock): update rdoc * ext/socket/udpsocket.c (udp_recvfrom_nonblock): ditto * test/socket/test_nonblock.rb: new tests [ruby-core:69542] [Feature #11229] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog15
1 files changed, 15 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 512f3252ae..bf5e689235 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+Tue Jun 16 04:38:02 2015 Eric Wong <e@80x24.org>
+
+ * ext/socket/ancdata.c (bsock_sendmsg_internal,
+ bsock_recvmsg_internal):
+ support "exception: false" kwarg
+ * ext/socket/init.c (rsock_s_recvfrom_nonblock):
+ ditto
+ * ext/socket/init.c (rsock_s_recvfrom_nonblock): use rsock_opt_false_p
+ * ext/socket/socket.c (sock_connect_nonblock): ditto
+ * ext/socket/rubysocket.h (rsock_opt_false_p): new function
+ * ext/socket/basicsocket.c (bsock_recv_nonblock): update rdoc
+ * ext/socket/udpsocket.c (udp_recvfrom_nonblock): ditto
+ * test/socket/test_nonblock.rb: new tests
+ [ruby-core:69542] [Feature #11229]
+
Mon Jun 15 14:33:02 2015 Akinori MUSHA <knu@iDaemons.org>
* lib/set.rb: Make Set#each and SortedSet#each generate a sized