Skip to content
This repository was archived by the owner on Nov 23, 2017. It is now read-only.
This repository was archived by the owner on Nov 23, 2017. It is now read-only.

create_datagram_endpoint() must wait until protocol.connection_made() was called #181

@GoogleCodeExporter

Description

@GoogleCodeExporter
Guido proposed in an old review https://codereview.appspot.com/69870048/ to 
replace call_soon(fut.set_result, None) with fut.set_result(None) in 
_ProactorBasePipeTransport and _SelectorSocketTransport constructors. Unit 
tests still pass with the change, so here is a patch:
http://codereview.appspot.com/108310044

Future.set_result() doesn't execute immediatly, it schedules the execution of 
these callbacks in the next loop iteration. If I read the code carefully, 
protocol.connection_made() will be executed before callbacks of the waiter. But 
I'm not sure that create_connection() only returns after the execution of 
protocol.connection_made(). I hope that a unit test checks that, but I didn't 
check myself.

By the way, I was surprised to see that there is no waiter for datagram 
transports.

Original issue reported on code.google.com by victor.s...@gmail.com on 1 Jul 2014 at 11:08

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions