bpo-38951: Use threading.main_thread() check in asyncio (GH-17433)



https://bugs.python.org/issue38951
diff --git a/Lib/asyncio/events.py b/Lib/asyncio/events.py
index 36b7ea3..c7343f5 100644
--- a/Lib/asyncio/events.py
+++ b/Lib/asyncio/events.py
@@ -636,7 +636,7 @@
         """
         if (self._local._loop is None and
                 not self._local._set_called and
-                isinstance(threading.current_thread(), threading._MainThread)):
+                threading.current_thread() is threading.main_thread()):
             self.set_event_loop(self.new_event_loop())
 
         if self._local._loop is None:
diff --git a/Lib/asyncio/unix_events.py b/Lib/asyncio/unix_events.py
index 632546a..97198ea 100644
--- a/Lib/asyncio/unix_events.py
+++ b/Lib/asyncio/unix_events.py
@@ -1406,8 +1406,7 @@
         with events._lock:
             if self._watcher is None:  # pragma: no branch
                 self._watcher = ThreadedChildWatcher()
-                if isinstance(threading.current_thread(),
-                              threading._MainThread):
+                if threading.current_thread() is threading.main_thread():
                     self._watcher.attach_loop(self._local._loop)
 
     def set_event_loop(self, loop):
@@ -1421,7 +1420,7 @@
         super().set_event_loop(loop)
 
         if (self._watcher is not None and
-                isinstance(threading.current_thread(), threading._MainThread)):
+                threading.current_thread() is threading.main_thread()):
             self._watcher.attach_loop(loop)
 
     def get_child_watcher(self):