using reinterpret_cast instead of macros for async_init to keep it portable between node versions. thanks bnoordhuis.