use posix api instead of boost::system to bypass a boring SIGSEGV
support 2.6 now