Created
December 13, 2017 22:33
-
-
Save unixpickle/a0619b99ccc7a61535d36459a1327354 to your computer and use it in GitHub Desktop.
Read blocking on close
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
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