Not a stupid question :)

You actually scared me a bit there (thought I overlooked this).  Python would clean up that variable and close the socket once we return from that function, but since the `autoreload.main` or `inner_run` loop forever, the variable never gets cleaned up.  Which means that the parent program still references the socket and the fd remains valid so that the child program can refer to the fd and open it.