summaryrefslogtreecommitdiffstats
path: root/libc/private/ScopedFd.h
diff options
context:
space:
mode:
authorSpencer Low <CompareAndSwap@gmail.com>2015-04-22 18:06:51 -0700
committerElliott Hughes <enh@google.com>2015-05-13 17:47:08 -0700
commit2a44cfbd7d64596795836e9ae6f6c642869d6d78 (patch)
tree663db4753a75f5de7fe2fb1f518d48682bd97167 /libc/private/ScopedFd.h
parent4bac6ea463a8f20793f5c1425965729ded1419fe (diff)
downloadbionic-2a44cfbd7d64596795836e9ae6f6c642869d6d78.zip
bionic-2a44cfbd7d64596795836e9ae6f6c642869d6d78.tar.gz
bionic-2a44cfbd7d64596795836e9ae6f6c642869d6d78.tar.bz2
ScopedFd: Don't use TEMP_FAILURE_RETRY() with close()
According to the comments in Posix_close(), TEMP_FAILURE_RETRY() should not be used with close(): https://android.googlesource.com/platform/libcore/+/462bdac45c10f43d88d8f07f6994e272a27c14a2%5E%21/#F12 Kill ScopedFd by simplifying the single caller. Bug: http://b/20501816 Change-Id: I248c40b8c2fc95f1938a6edfc245c81847fc44af Signed-off-by: Spencer Low <CompareAndSwap@gmail.com> (cherry picked from commit 0346ad7a4fb6e253317577ee8b9cc79d958f4349)
Diffstat (limited to 'libc/private/ScopedFd.h')
-rw-r--r--libc/private/ScopedFd.h59
1 files changed, 0 insertions, 59 deletions
diff --git a/libc/private/ScopedFd.h b/libc/private/ScopedFd.h
deleted file mode 100644
index e56c139..0000000
--- a/libc/private/ScopedFd.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SCOPED_FD_H
-#define SCOPED_FD_H
-
-#include <unistd.h>
-#include "bionic_macros.h"
-
-// A smart pointer that closes the given fd on going out of scope.
-// Use this when the fd is incidental to the purpose of your function,
-// but needs to be cleaned up on exit.
-class ScopedFd {
-public:
- explicit ScopedFd(int fd) : fd(fd) {
- }
-
- ~ScopedFd() {
- reset();
- }
-
- int get() const {
- return fd;
- }
-
- int release() __attribute__((warn_unused_result)) {
- int localFd = fd;
- fd = -1;
- return localFd;
- }
-
- void reset(int new_fd = -1) {
- if (fd != -1) {
- TEMP_FAILURE_RETRY(close(fd));
- }
- fd = new_fd;
- }
-
-private:
- int fd;
-
- // Disallow copy and assignment.
- DISALLOW_COPY_AND_ASSIGN(ScopedFd);
-};
-
-#endif // SCOPED_FD_H