diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-11 07:51:53 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-11 07:51:53 +0000 |
commit | 0a954e9117168f0221b7cfd833b1e2ea6243ba16 (patch) | |
tree | c4fca19ab1a781f28f36c12c02c018fece547b3f /ext/socket | |
parent | ff955766d496954140ed9c72ac0be898cbb913da (diff) | |
download | ruby-0a954e9117168f0221b7cfd833b1e2ea6243ba16.tar.gz |
* ext/socket/lib/socket.rb (Socket.unix_server_socket): call the block
if given. remove the socket file when the block exits.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
-rw-r--r-- | ext/socket/lib/socket.rb | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ext/socket/lib/socket.rb b/ext/socket/lib/socket.rb index 0981b12edc..1099b7fd2f 100644 --- a/ext/socket/lib/socket.rb +++ b/ext/socket/lib/socket.rb @@ -607,7 +607,16 @@ class Socket if st && st.socket? && st.owned? File.unlink path end - Addrinfo.unix(path).listen + s = Addrinfo.unix(path).listen + if block_given? + begin + yield s + ensure + File.unlink path + end + else + s + end end # creates a UNIX socket server on _path_. |