Server is able to be stopped with interupt.

md5sum a.out
0f7ba3e9a5ac7ff28be049cdb193d8fe  a.out

Fixed the accept problem by closing the socket within the signal
interupt. This causes accept to return EBADF and we're able to loop once
more to see that stop has been set for the server.