std::shared_ptr<Timer> Timer::Create(Loop& loop) { auto h = std::make_shared<Timer>(private_init{}); int err = uv_timer_init(loop.GetRaw(), h->GetRaw()); if (err < 0) { loop.ReportError(err); return nullptr; } h->Keep(); return h; }
std::shared_ptr<Tty> Tty::Create(Loop& loop, uv_file fd, bool readable) { auto h = std::make_shared<Tty>(private_init{}); int err = uv_tty_init(loop.GetRaw(), h->GetRaw(), fd, readable ? 1 : 0); if (err < 0) { loop.ReportError(err); return nullptr; } h->Keep(); return h; }