Improve the way to get binder service in ResolverEventReporter

To prevent DNS lookup threads from being blocked by waiting for
the netd_listener service ready, use non-blocking call to get the
service.

Test: system/netd/tests/runtests.sh passed
Change-Id: I1148d49f87cce4091e18b5cfaf363177f4fdbfd0
diff --git a/resolv/ResolverEventReporter.h b/resolv/ResolverEventReporter.h
index 0f83cd4..09c6b70 100644
--- a/resolv/ResolverEventReporter.h
+++ b/resolv/ResolverEventReporter.h
@@ -17,6 +17,8 @@
 #ifndef NETD_RESOLV_EVENT_REPORTER_H
 #define NETD_RESOLV_EVENT_REPORTER_H
 
+#include <android-base/thread_annotations.h>
+
 #include "aidl/android/net/metrics/INetdEventListener.h"
 
 /*
@@ -29,10 +31,12 @@
     static std::shared_ptr<aidl::android::net::metrics::INetdEventListener> getListener();
 
   private:
-    // Get netd events listener binder.
-    ResolverEventReporter();
+    std::mutex mEventMutex;
+    std::shared_ptr<aidl::android::net::metrics::INetdEventListener> mListener
+            GUARDED_BY(mEventMutex);
 
-    std::shared_ptr<aidl::android::net::metrics::INetdEventListener> mListener;
+    std::shared_ptr<aidl::android::net::metrics::INetdEventListener> getNetdEventListener()
+            EXCLUDES(mEventMutex);
 };
 
 #endif  // NETD_RESOLV_EVENT_REPORTER_H