Issue #28448: Fix C implemented asyncio.Future didn't work on Windows
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py
index 73215f5..e45d6aa 100644
--- a/Lib/asyncio/futures.py
+++ b/Lib/asyncio/futures.py
@@ -247,10 +247,10 @@
         if self._state != _PENDING:
             return False
         self._state = _CANCELLED
-        self._schedule_callbacks()
+        self.__schedule_callbacks()
         return True
 
-    def _schedule_callbacks(self):
+    def __schedule_callbacks(self):
         """Internal: Ask the event loop to call all callbacks.
 
         The callbacks are scheduled to be called as soon as possible. Also
@@ -352,7 +352,7 @@
             raise InvalidStateError('{}: {!r}'.format(self._state, self))
         self._result = result
         self._state = _FINISHED
-        self._schedule_callbacks()
+        self.__schedule_callbacks()
 
     def set_exception(self, exception):
         """Mark the future done and set an exception.
@@ -369,7 +369,7 @@
                             "and cannot be raised into a Future")
         self._exception = exception
         self._state = _FINISHED
-        self._schedule_callbacks()
+        self.__schedule_callbacks()
         if compat.PY34:
             self._log_traceback = True
         else:
diff --git a/Lib/asyncio/windows_events.py b/Lib/asyncio/windows_events.py
index 668fe14..b777dd0 100644
--- a/Lib/asyncio/windows_events.py
+++ b/Lib/asyncio/windows_events.py
@@ -171,8 +171,13 @@
     def cancel(self):
         raise RuntimeError("_WaitCancelFuture must not be cancelled")
 
-    def _schedule_callbacks(self):
-        super(_WaitCancelFuture, self)._schedule_callbacks()
+    def set_result(self, result):
+        super().set_result(result)
+        if self._done_callback is not None:
+            self._done_callback(self)
+
+    def set_exception(self, exception):
+        super().set_exception(exception)
         if self._done_callback is not None:
             self._done_callback(self)