diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-23 08:57:48 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-12-23 08:57:48 +0000 |
commit | b8fff7a8fb3669e86c2547119dc34e375b098325 (patch) | |
tree | 54a609327994753d5579a07797f199fff86c3dc4 /ext/socket/unixsocket.c | |
parent | 4542c5d55399b06226fb983452fe3df86931fad8 (diff) | |
download | ruby-b8fff7a8fb3669e86c2547119dc34e375b098325.tar.gz |
prefer rb_syserr_fail
* file.c, io.c, util.c: prefer rb_syserr_fail with saved errno
over setting errno then call rb_sys_fail, not to be clobbered
potentially and to reduce thread local errno accesses.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53264 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket/unixsocket.c')
-rw-r--r-- | ext/socket/unixsocket.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/socket/unixsocket.c b/ext/socket/unixsocket.c index 2442bc1d12..f73f12777c 100644 --- a/ext/socket/unixsocket.c +++ b/ext/socket/unixsocket.c @@ -65,14 +65,16 @@ rsock_init_unixsock(VALUE sock, VALUE path, int server) } if (status < 0) { + int e = errno; close(fd); - rsock_sys_fail_path("connect(2)", path); + rsock_syserr_fail_path(e, "connect(2)", path); } if (server) { if (listen(fd, SOMAXCONN) < 0) { + int e = errno; close(fd); - rsock_sys_fail_path("listen(2)", path); + rsock_syserr_fail_path(e, "listen(2)", path); } } |