resolved conflicts for merge of b40ebc54
to mnc-dev-plus-aosp
Change-Id: I9da05b46da2326ae21d164b137be57a9b5220f7b
This commit is contained in:
commit
5b8ff09578
|
@ -17,11 +17,13 @@
|
|||
#include <utils/Looper.h>
|
||||
#include <utils/Timers.h>
|
||||
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <limits.h>
|
||||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <sys/eventfd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
namespace android {
|
||||
|
@ -73,7 +75,8 @@ Looper::Looper(bool allowNonCallbacks) :
|
|||
mPolling(false), mEpollFd(-1), mEpollRebuildRequired(false),
|
||||
mNextRequestSeq(0), mResponseIndex(0), mNextMessageUptime(LLONG_MAX) {
|
||||
mWakeEventFd = eventfd(0, EFD_NONBLOCK);
|
||||
LOG_ALWAYS_FATAL_IF(mWakeEventFd < 0, "Could not make wake event fd. errno=%d", errno);
|
||||
LOG_ALWAYS_FATAL_IF(mWakeEventFd < 0, "Could not make wake event fd: %s",
|
||||
strerror(errno));
|
||||
|
||||
AutoMutex _l(mLock);
|
||||
rebuildEpollLocked();
|
||||
|
@ -148,15 +151,15 @@ void Looper::rebuildEpollLocked() {
|
|||
|
||||
// Allocate the new epoll instance and register the wake pipe.
|
||||
mEpollFd = epoll_create(EPOLL_SIZE_HINT);
|
||||
LOG_ALWAYS_FATAL_IF(mEpollFd < 0, "Could not create epoll instance. errno=%d", errno);
|
||||
LOG_ALWAYS_FATAL_IF(mEpollFd < 0, "Could not create epoll instance: %s", strerror(errno));
|
||||
|
||||
struct epoll_event eventItem;
|
||||
memset(& eventItem, 0, sizeof(epoll_event)); // zero out unused members of data field union
|
||||
eventItem.events = EPOLLIN;
|
||||
eventItem.data.fd = mWakeEventFd;
|
||||
int result = epoll_ctl(mEpollFd, EPOLL_CTL_ADD, mWakeEventFd, & eventItem);
|
||||
LOG_ALWAYS_FATAL_IF(result != 0, "Could not add wake event fd to epoll instance. errno=%d",
|
||||
errno);
|
||||
LOG_ALWAYS_FATAL_IF(result != 0, "Could not add wake event fd to epoll instance: %s",
|
||||
strerror(errno));
|
||||
|
||||
for (size_t i = 0; i < mRequests.size(); i++) {
|
||||
const Request& request = mRequests.valueAt(i);
|
||||
|
@ -165,8 +168,8 @@ void Looper::rebuildEpollLocked() {
|
|||
|
||||
int epollResult = epoll_ctl(mEpollFd, EPOLL_CTL_ADD, request.fd, & eventItem);
|
||||
if (epollResult < 0) {
|
||||
ALOGE("Error adding epoll events for fd %d while rebuilding epoll set, errno=%d",
|
||||
request.fd, errno);
|
||||
ALOGE("Error adding epoll events for fd %d while rebuilding epoll set: %s",
|
||||
request.fd, strerror(errno));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -265,7 +268,7 @@ int Looper::pollInner(int timeoutMillis) {
|
|||
if (errno == EINTR) {
|
||||
goto Done;
|
||||
}
|
||||
ALOGW("Poll failed with an unexpected error, errno=%d", errno);
|
||||
ALOGW("Poll failed with an unexpected error: %s", strerror(errno));
|
||||
result = POLL_ERROR;
|
||||
goto Done;
|
||||
}
|
||||
|
@ -410,7 +413,7 @@ void Looper::wake() {
|
|||
ssize_t nWrite = TEMP_FAILURE_RETRY(write(mWakeEventFd, &inc, sizeof(uint64_t)));
|
||||
if (nWrite != sizeof(uint64_t)) {
|
||||
if (errno != EAGAIN) {
|
||||
ALOGW("Could not write wake signal, errno=%d", errno);
|
||||
ALOGW("Could not write wake signal: %s", strerror(errno));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -474,7 +477,7 @@ int Looper::addFd(int fd, int ident, int events, const sp<LooperCallback>& callb
|
|||
if (requestIndex < 0) {
|
||||
int epollResult = epoll_ctl(mEpollFd, EPOLL_CTL_ADD, fd, & eventItem);
|
||||
if (epollResult < 0) {
|
||||
ALOGE("Error adding epoll events for fd %d, errno=%d", fd, errno);
|
||||
ALOGE("Error adding epoll events for fd %d: %s", fd, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
mRequests.add(fd, request);
|
||||
|
@ -497,18 +500,18 @@ int Looper::addFd(int fd, int ident, int events, const sp<LooperCallback>& callb
|
|||
// call instead, but that approach carries others disadvantages.
|
||||
#if DEBUG_CALLBACKS
|
||||
ALOGD("%p ~ addFd - EPOLL_CTL_MOD failed due to file descriptor "
|
||||
"being recycled, falling back on EPOLL_CTL_ADD, errno=%d",
|
||||
this, errno);
|
||||
"being recycled, falling back on EPOLL_CTL_ADD: %s",
|
||||
this, strerror(errno));
|
||||
#endif
|
||||
epollResult = epoll_ctl(mEpollFd, EPOLL_CTL_ADD, fd, & eventItem);
|
||||
if (epollResult < 0) {
|
||||
ALOGE("Error modifying or adding epoll events for fd %d, errno=%d",
|
||||
fd, errno);
|
||||
ALOGE("Error modifying or adding epoll events for fd %d: %s",
|
||||
fd, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
scheduleEpollRebuildLocked();
|
||||
} else {
|
||||
ALOGE("Error modifying epoll events for fd %d, errno=%d", fd, errno);
|
||||
ALOGE("Error modifying epoll events for fd %d: %s", fd, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
@ -563,7 +566,7 @@ int Looper::removeFd(int fd, int seq) {
|
|||
// call instead, but that approach carries others disadvantages.
|
||||
#if DEBUG_CALLBACKS
|
||||
ALOGD("%p ~ removeFd - EPOLL_CTL_DEL failed due to file descriptor "
|
||||
"being closed, errno=%d", this, errno);
|
||||
"being closed: %s", this, strerror(errno));
|
||||
#endif
|
||||
scheduleEpollRebuildLocked();
|
||||
} else {
|
||||
|
@ -571,7 +574,7 @@ int Looper::removeFd(int fd, int seq) {
|
|||
// our list of callbacks got out of sync with the epoll set somehow.
|
||||
// We defensively rebuild the epoll set to avoid getting spurious
|
||||
// notifications with nowhere to go.
|
||||
ALOGE("Error removing epoll events for fd %d, errno=%d", fd, errno);
|
||||
ALOGE("Error removing epoll events for fd %d: %s", fd, strerror(errno));
|
||||
scheduleEpollRebuildLocked();
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -17,9 +17,10 @@
|
|||
#define LOG_TAG "ProcessCallStack"
|
||||
// #define LOG_NDEBUG 0
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <utils/Log.h>
|
||||
#include <utils/Errors.h>
|
||||
|
@ -135,8 +136,8 @@ void ProcessCallStack::update() {
|
|||
|
||||
dp = opendir(PATH_SELF_TASK);
|
||||
if (dp == NULL) {
|
||||
ALOGE("%s: Failed to update the process's call stacks (errno = %d, '%s')",
|
||||
__FUNCTION__, errno, strerror(errno));
|
||||
ALOGE("%s: Failed to update the process's call stacks: %s",
|
||||
__FUNCTION__, strerror(errno));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -172,8 +173,8 @@ void ProcessCallStack::update() {
|
|||
|
||||
ssize_t idx = mThreadMap.add(tid, ThreadInfo());
|
||||
if (idx < 0) { // returns negative error value on error
|
||||
ALOGE("%s: Failed to add new ThreadInfo (errno = %zd, '%s')",
|
||||
__FUNCTION__, idx, strerror(-idx));
|
||||
ALOGE("%s: Failed to add new ThreadInfo: %s",
|
||||
__FUNCTION__, strerror(-idx));
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -195,8 +196,8 @@ void ProcessCallStack::update() {
|
|||
__FUNCTION__, tid, threadInfo.callStack.size());
|
||||
}
|
||||
if (code != 0) { // returns positive error value on error
|
||||
ALOGE("%s: Failed to readdir from %s (errno = %d, '%s')",
|
||||
__FUNCTION__, PATH_SELF_TASK, -code, strerror(code));
|
||||
ALOGE("%s: Failed to readdir from %s: %s",
|
||||
__FUNCTION__, PATH_SELF_TASK, strerror(code));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
#include <sys/time.h>
|
||||
#include <limits.h>
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <utils/SystemClock.h>
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include <memory.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#if !defined(_WIN32)
|
||||
|
@ -160,9 +161,9 @@ int androidCreateRawThreadEtc(android_thread_func_t entryFunction,
|
|||
(android_pthread_entry)entryFunction, userData);
|
||||
pthread_attr_destroy(&attr);
|
||||
if (result != 0) {
|
||||
ALOGE("androidCreateRawThreadEtc failed (entry=%p, res=%d, errno=%d)\n"
|
||||
ALOGE("androidCreateRawThreadEtc failed (entry=%p, res=%d, %s)\n"
|
||||
"(android threadPriority=%d)",
|
||||
entryFunction, result, errno, threadPriority);
|
||||
entryFunction, result, strerror(errno), threadPriority);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -56,12 +56,12 @@ status_t Tokenizer::open(const String8& filename, Tokenizer** outTokenizer) {
|
|||
int fd = ::open(filename.string(), O_RDONLY);
|
||||
if (fd < 0) {
|
||||
result = -errno;
|
||||
ALOGE("Error opening file '%s', %s.", filename.string(), strerror(errno));
|
||||
ALOGE("Error opening file '%s': %s", filename.string(), strerror(errno));
|
||||
} else {
|
||||
struct stat stat;
|
||||
if (fstat(fd, &stat)) {
|
||||
result = -errno;
|
||||
ALOGE("Error getting size of file '%s', %s.", filename.string(), strerror(errno));
|
||||
ALOGE("Error getting size of file '%s': %s", filename.string(), strerror(errno));
|
||||
} else {
|
||||
size_t length = size_t(stat.st_size);
|
||||
|
||||
|
@ -83,7 +83,7 @@ status_t Tokenizer::open(const String8& filename, Tokenizer** outTokenizer) {
|
|||
ssize_t nrd = read(fd, buffer, length);
|
||||
if (nrd < 0) {
|
||||
result = -errno;
|
||||
ALOGE("Error reading file '%s', %s.", filename.string(), strerror(errno));
|
||||
ALOGE("Error reading file '%s': %s", filename.string(), strerror(errno));
|
||||
delete[] buffer;
|
||||
buffer = NULL;
|
||||
} else {
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
|
||||
#include <sys/stat.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#if !defined(_WIN32)
|
||||
|
|
Loading…
Reference in New Issue