You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2015/09/28 20:27:16 UTC
[02/10] mesos git commit: Removed implicit logging from
Socket::shutdown in favor of returning a Try.
Removed implicit logging from Socket::shutdown in favor of returning a Try.
Review: https://reviews.apache.org/r/38595
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b06e932a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b06e932a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b06e932a
Branch: refs/heads/master
Commit: b06e932a036044c54cd72ddde1d26c5f9271ea51
Parents: bfeb070
Author: Benjamin Mahler <be...@gmail.com>
Authored: Mon Sep 21 11:18:06 2015 -0700
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Mon Sep 28 10:38:01 2015 -0700
----------------------------------------------------------------------
3rdparty/libprocess/include/process/socket.hpp | 10 ++++++----
3rdparty/libprocess/src/libevent_ssl_socket.cpp | 7 +++++--
3rdparty/libprocess/src/libevent_ssl_socket.hpp | 2 +-
3rdparty/libprocess/src/process.cpp | 14 ++++++++++++--
4 files changed, 24 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/b06e932a/3rdparty/libprocess/include/process/socket.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/socket.hpp b/3rdparty/libprocess/include/process/socket.hpp
index a677e29..817cb37 100644
--- a/3rdparty/libprocess/include/process/socket.hpp
+++ b/3rdparty/libprocess/include/process/socket.hpp
@@ -168,11 +168,13 @@ public:
// enabling reuse of a pool of preallocated strings/buffers.
virtual Future<Nothing> send(const std::string& data);
- virtual void shutdown()
+ virtual Try<Nothing> shutdown()
{
if (::shutdown(s, SHUT_RD) < 0) {
- PLOG(ERROR) << "Shutdown failed on fd=" << s;
+ return ErrnoError();
}
+
+ return Nothing();
}
virtual Socket::Kind kind() const = 0;
@@ -291,9 +293,9 @@ public:
return impl->send(data);
}
- void shutdown()
+ Try<Nothing> shutdown()
{
- impl->shutdown();
+ return impl->shutdown();
}
private:
http://git-wip-us.apache.org/repos/asf/mesos/blob/b06e932a/3rdparty/libprocess/src/libevent_ssl_socket.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/libevent_ssl_socket.cpp b/3rdparty/libprocess/src/libevent_ssl_socket.cpp
index 80db6e8..52ae802 100644
--- a/3rdparty/libprocess/src/libevent_ssl_socket.cpp
+++ b/3rdparty/libprocess/src/libevent_ssl_socket.cpp
@@ -155,7 +155,7 @@ void LibeventSSLSocketImpl::initialize()
}
-void LibeventSSLSocketImpl::shutdown()
+Try<Nothing> LibeventSSLSocketImpl::shutdown()
{
// Nothing to do if this socket was never initialized.
synchronized (lock) {
@@ -166,7 +166,8 @@ void LibeventSSLSocketImpl::shutdown()
CHECK(recv_request.get() == NULL);
CHECK(send_request.get() == NULL);
- return;
+ errno = ENOTCONN;
+ return ErrnoError();
}
}
@@ -200,6 +201,8 @@ void LibeventSSLSocketImpl::shutdown()
}
},
DISALLOW_SHORT_CIRCUIT);
+
+ return Nothing();
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/b06e932a/3rdparty/libprocess/src/libevent_ssl_socket.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/libevent_ssl_socket.hpp b/3rdparty/libprocess/src/libevent_ssl_socket.hpp
index 3b17fa2..dc54c74 100644
--- a/3rdparty/libprocess/src/libevent_ssl_socket.hpp
+++ b/3rdparty/libprocess/src/libevent_ssl_socket.hpp
@@ -53,7 +53,7 @@ public:
// This call is used to do the equivalent of shutting down the read
// end. This means finishing the future of any outstanding read
// request.
- virtual void shutdown();
+ virtual Try<Nothing> shutdown();
// We need a post-initializer because 'shared_from_this()' is not
// valid until the constructor has finished.
http://git-wip-us.apache.org/repos/asf/mesos/blob/b06e932a/3rdparty/libprocess/src/process.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/process.cpp b/3rdparty/libprocess/src/process.cpp
index c03fba4..7a2b911 100644
--- a/3rdparty/libprocess/src/process.cpp
+++ b/3rdparty/libprocess/src/process.cpp
@@ -1821,7 +1821,12 @@ Encoder* SocketManager::next(int s)
// calling close the termination logic is not run twice.
Socket* socket = iterator->second;
sockets.erase(iterator);
- socket->shutdown();
+
+ Try<Nothing> shutdown = socket->shutdown();
+ if (shutdown.isError()) {
+ LOG(ERROR) << "Failed to shutdown socket with fd " << socket->get()
+ << ": " << shutdown.error();
+ }
delete socket;
}
@@ -1901,7 +1906,12 @@ void SocketManager::close(int s)
// termination logic is not run twice.
Socket* socket = iterator->second;
sockets.erase(iterator);
- socket->shutdown();
+
+ Try<Nothing> shutdown = socket->shutdown();
+ if (shutdown.isError()) {
+ LOG(ERROR) << "Failed to shutdown socket with fd " << socket->get()
+ << ": " << shutdown.error();
+ }
delete socket;
}