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 2013/08/05 21:51:16 UTC
[2/3] git commit: Updated process.cpp to use os::sendfile.
Updated process.cpp to use os::sendfile.
Review: https://reviews.apache.org/r/12620
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/dab4665c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/dab4665c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/dab4665c
Branch: refs/heads/master
Commit: dab4665c84077982b36bbcc6f7c1d40d0f144489
Parents: 14d2214
Author: Benjamin Mahler <bm...@twitter.com>
Authored: Thu Jun 27 18:55:09 2013 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Mon Aug 5 12:38:06 2013 -0700
----------------------------------------------------------------------
3rdparty/libprocess/src/config.hpp | 9 ---------
3rdparty/libprocess/src/process.cpp | 5 ++++-
2 files changed, 4 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/dab4665c/3rdparty/libprocess/src/config.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/config.hpp b/3rdparty/libprocess/src/config.hpp
index 1daa476..cbaf41d 100644
--- a/3rdparty/libprocess/src/config.hpp
+++ b/3rdparty/libprocess/src/config.hpp
@@ -27,21 +27,12 @@
#ifndef MAP_32BIT
#define MAP_32BIT 0
#endif
-#define sendfile(s, fd, offset, size) \
- ({ off_t length = size; \
- sendfile(fd, s, offset, &length, NULL, 0) == 0 \
- ? length \
- : (errno == EAGAIN ? (length > 0 ? length : -1) : -1); })
#endif /* __APPLE__ */
#ifdef __linux__
#ifndef MAP_32BIT
#define MAP_32BIT 0
#endif
-#include <sys/sendfile.h>
-#define sendfile(s, fd, offset, size) \
- ({ off_t _offset = offset; \
- sendfile(s, fd, &_offset, size) == -1 ? -1 : _offset - offset; })
#endif /* __linux__ */
#endif /* CONFIG_HPP */
http://git-wip-us.apache.org/repos/asf/mesos/blob/dab4665c/3rdparty/libprocess/src/process.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/process.cpp b/3rdparty/libprocess/src/process.cpp
index 443acfd..0b4f90f 100644
--- a/3rdparty/libprocess/src/process.cpp
+++ b/3rdparty/libprocess/src/process.cpp
@@ -1093,7 +1093,7 @@ void send_file(struct ev_loop* loop, ev_io* watcher, int revents)
fd = encoder->next(&offset, &size);
CHECK(size > 0);
- ssize_t length = sendfile(s, fd, offset, size);
+ ssize_t length = os::sendfile(s, fd, offset, size);
if (length < 0 && (errno == EINTR)) {
// Interrupted, try again now.
@@ -3609,6 +3609,7 @@ Future<Response> get(const UPID& upid, const string& path, const string& query)
addr.sin_addr.s_addr = upid.ip;
if (connect(s, (sockaddr*) &addr, sizeof(addr)) < 0) {
+ os::close(s);
return Future<Response>::failed(
string("Failed to connect: ") + strerror(errno));
}
@@ -3640,6 +3641,7 @@ Future<Response> get(const UPID& upid, const string& path, const string& query)
if (errno == EINTR) {
continue;
}
+ os::close(s);
return Future<Response>::failed(
string("Failed to write: ") + strerror(errno));
}
@@ -3649,6 +3651,7 @@ Future<Response> get(const UPID& upid, const string& path, const string& query)
Try<Nothing> nonblock = os::nonblock(s);
if (!nonblock.isSome()) {
+ os::close(s);
return Future<Response>::failed(
"Failed to set nonblock: " + nonblock.error());
}