Fix a race in runFromSource. (#9495)
Fix a race in runFromSource. (#9495)

There is a race where we could complete a future based on a stream event
and then before we cancel the stream subscription, we get another event
and try and complete the future again.
Hixie/flutter,Hixie/flutter,cbracken/flutter,cbracken/flutter,cbracken/flutter,flutter/flutter,tvolkert/flutter,Hixie/flutter,tvolkert/flutter,flutter/flutter,cbracken/flutter,flutter/flutter,flutter/flutter,turnidge/flutter,Hixie/flutter,flutter/flutter,tvolkert/flutter,tvolkert/flutter,Hixie/flutter,tvolkert/flutter,turnidge/flutter,tvolkert/flutter,tvolkert/flutter,cbracken/flutter,cbracken/flutter,turnidge/flutter,turnidge/flutter,Hixie/flutter,flutter/flutter,tvolkert/flutter,cbracken/flutter,Hixie/flutter,tvolkert/flutter,cbracken/flutter,flutter/flutter,Hixie/flutter,turnidge/flutter,cbracken/flutter,flutter/flutter,flutter/flutter,cbracken/flutter,tvolkert/flutter,Hixie/flutter,Hixie/flutter,flutter/flutter