src: add on_close handler