@@ -707,29 +707,21 @@ inline void IsolateData::set_options(
707707}
708708
709709template <typename Fn>
710- void Environment::CreateImmediate (Fn&& cb, bool ref ) {
711- auto callback = native_immediates_.CreateCallback (std::move (cb), ref );
710+ void Environment::SetImmediate (Fn&& cb, CallbackFlags::Flags flags ) {
711+ auto callback = native_immediates_.CreateCallback (std::move (cb), flags );
712712 native_immediates_.Push (std::move (callback));
713- }
714-
715- template <typename Fn>
716- void Environment::SetImmediate (Fn&& cb) {
717- CreateImmediate (std::move (cb), true );
718713
719- if (immediate_info ()->ref_count () == 0 )
720- ToggleImmediateRef (true );
721- immediate_info ()->ref_count_inc (1 );
722- }
723-
724- template <typename Fn>
725- void Environment::SetUnrefImmediate (Fn&& cb) {
726- CreateImmediate (std::move (cb), false );
714+ if (flags & CallbackFlags::kRefed ) {
715+ if (immediate_info ()->ref_count () == 0 )
716+ ToggleImmediateRef (true );
717+ immediate_info ()->ref_count_inc (1 );
718+ }
727719}
728720
729721template <typename Fn>
730- void Environment::SetImmediateThreadsafe (Fn&& cb, bool refed ) {
731- auto callback =
732- native_immediates_threadsafe_. CreateCallback ( std::move (cb), refed );
722+ void Environment::SetImmediateThreadsafe (Fn&& cb, CallbackFlags::Flags flags ) {
723+ auto callback = native_immediates_threadsafe_. CreateCallback (
724+ std::move (cb), flags );
733725 {
734726 Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
735727 native_immediates_threadsafe_.Push (std::move (callback));
@@ -740,8 +732,8 @@ void Environment::SetImmediateThreadsafe(Fn&& cb, bool refed) {
740732
741733template <typename Fn>
742734void Environment::RequestInterrupt (Fn&& cb) {
743- auto callback =
744- native_immediates_interrupts_. CreateCallback ( std::move (cb), false );
735+ auto callback = native_immediates_interrupts_. CreateCallback (
736+ std::move (cb), CallbackFlags:: kRefed );
745737 {
746738 Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
747739 native_immediates_interrupts_.Push (std::move (callback));
0 commit comments