Tôi đã có một máy chủ đa luồng (sử dụng các chủ đề POSIX), với một luồng cho mỗi kết nối liên tục. Trong một trong các chủ đề, đầu kia của kết nối đóng lại, dẫn đến một SIGPIPE đang được gửi đi. Có một (tốt nhất là di động) để xác định thread nào (và do đó kết nối) điều này xảy ra vì vậy tôi có thể có trình xử lý tín hiệu của tôi hoặc làm dọn dẹp luồng/kết nối làm việc hoặc đặt cờ sao cho chuỗi chính và công nhân tương ứng thấy rằng họ cần phải làm điều đó sau?Chủ đề/tín hiệu POSIX: Cách di động để xác định luồng tín hiệu nào được phân phối?
EDIT: Tôi tự hỏi nếu tôi có thể sử dụng & errno, lưu trữ nó trong một mảng toàn cầu và liên kết nó với định danh của máy chủ cho chủ đề, và sau đó tìm kiếm & errno trong bộ xử lý tín hiệu. Liệu các errno cụ thể của thread có thể được hiển thị cho bộ xử lý tín hiệu? Là sự hiểu biết của tôi về cách threadsafe errno hoạt động ngay cả trong ballpark?
Nếu tín hiệu được gửi đến một chuỗi cụ thể thì luồng đó sẽ xử lý tín hiệu. Đó là những gì cung cấp một tín hiệu cho một chủ đề cụ thể có nghĩa là. Tôi không hiểu những gì có để kiểm tra? –
Bởi vì điều đó không cho tôi biết đó là chủ đề cụ thể. –
Tôi không hiểu, chủ đề là chủ đề xử lý tín hiệu. Bạn cần biết thông tin gì về chuỗi hiện tại? –