在我的代码中,我打开一个套接字,我注册到EpollSelector。然后文档说明了
文件对象在关闭之前应取消注册。
如何使用以下代码保证:
with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as a_socket:
a_socket.bind(socket_addr)
a_socket.listen(1)
epoll = select.epoll()
epoll.register(a_socket, select.EPOLLIN, select.EPOLLERR, select.EPOLLHUP)
do_stuff()
epoll.unregister(a_socket)
如果do_stuff引发异常,我怎样才能确保在套接字关闭之前发生取消注册?如果我在关闭套接字之前没有取消注册会出现什么问题?
答案 0 :(得分:0)
是否可以用try / except包装do_stuff()?
try:
do_stuff()
except Exception as e:
print("There was an error!")
epoll.unregister(a_socket)