Skip to content

Instantly share code, notes, and snippets.

@unixpickle
Created December 13, 2017 22:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save unixpickle/a0619b99ccc7a61535d36459a1327354 to your computer and use it in GitHub Desktop.
Save unixpickle/a0619b99ccc7a61535d36459a1327354 to your computer and use it in GitHub Desktop.
Read blocking on close
"""
Terminates on macOS but not Linux.
"""
import socket
from threading import Thread
import time
def main():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind(('localhost', 1337))
sock.listen(10)
def bg():
conn, _ = sock.accept()
def bg_bg():
conn.recv(1)
Thread(target=bg_bg, daemon=True).start()
time.sleep(1)
conn.close()
Thread(target=bg, daemon=True).start()
conn1 = socket.create_connection(('localhost', 1337))
conn1.recv(1)
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment