add kqueue support