Merge "Fix pthread_create error handling in ril."
diff --git a/libril/ril.cpp b/libril/ril.cpp
index da5bee9..0ac698e 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -3176,27 +3176,26 @@
extern "C" void
RIL_startEventLoop(void) {
- int ret;
- pthread_attr_t attr;
-
/* spin up eventLoop thread and wait for it to get started */
s_started = 0;
pthread_mutex_lock(&s_startupMutex);
- pthread_attr_init (&attr);
+ pthread_attr_t attr;
+ pthread_attr_init(&attr);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
- ret = pthread_create(&s_tid_dispatch, &attr, eventLoop, NULL);
+
+ int ret = pthread_create(&s_tid_dispatch, &attr, eventLoop, NULL);
+ if (ret < 0) {
+ RLOGE("Failed to create dispatch thread: %s", strerror(errno));
+ goto done;
+ }
while (s_started == 0) {
pthread_cond_wait(&s_startupCond, &s_startupMutex);
}
+done:
pthread_mutex_unlock(&s_startupMutex);
-
- if (ret < 0) {
- RLOGE("Failed to create dispatch thread errno:%d", errno);
- return;
- }
}
// Used for testing purpose only.