diff --git a/src/uvw/check.cpp b/src/uvw/check.cpp index c3212594..3608c0d2 100644 --- a/src/uvw/check.cpp +++ b/src/uvw/check.cpp @@ -15,16 +15,12 @@ UVW_INLINE int check_handle::init() { return leak_if(uv_check_init(parent().raw(), raw())); } -UVW_INLINE void check_handle::start() { - if(auto err = uv_check_start(raw(), &start_callback); err != 0) { - publish(error_event{err}); - } +UVW_INLINE int check_handle::start() { + return uv_check_start(raw(), &start_callback); } -UVW_INLINE void check_handle::stop() { - if(auto err = uv_check_stop(raw()); err != 0) { - publish(error_event{err}); - } +UVW_INLINE int check_handle::stop() { + return uv_check_stop(raw()); } } // namespace uvw diff --git a/src/uvw/check.h b/src/uvw/check.h index 1797e537..63a23cf5 100644 --- a/src/uvw/check.h +++ b/src/uvw/check.h @@ -35,13 +35,16 @@ public: * * A check event will be emitted once per loop iteration, right after * polling for I/O. + * + * @return Underlying return value. */ - void start(); + int start(); /** * @brief Stops the handle. + * @return Underlying return value. */ - void stop(); + int stop(); }; } // namespace uvw diff --git a/test/uvw/check.cpp b/test/uvw/check.cpp index 8659e5ad..3c6eb6c5 100644 --- a/test/uvw/check.cpp +++ b/test/uvw/check.cpp @@ -11,14 +11,17 @@ TEST(Check, StartAndStop) { handle->on([&checkCheckEvent](const auto &, auto &hndl) { ASSERT_FALSE(checkCheckEvent); + checkCheckEvent = true; - hndl.stop(); + + ASSERT_EQ(0, hndl.stop()); + hndl.close(); + ASSERT_TRUE(hndl.closing()); }); - handle->start(); - + ASSERT_EQ(0, handle->start()); ASSERT_TRUE(handle->active()); ASSERT_FALSE(handle->closing());