@@ -786,29 +786,21 @@ inline void IsolateData::set_options(
786786}
787787
788788template <typename Fn>
789- void Environment::CreateImmediate (Fn&& cb, bool ref ) {
790- auto callback = native_immediates_.CreateCallback (std::move (cb), ref );
789+ void Environment::SetImmediate (Fn&& cb, CallbackFlags::Flags flags ) {
790+ auto callback = native_immediates_.CreateCallback (std::move (cb), flags );
791791 native_immediates_.Push (std::move (callback));
792- }
793-
794- template <typename Fn>
795- void Environment::SetImmediate (Fn&& cb) {
796- CreateImmediate (std::move (cb), true );
797792
798- if (immediate_info ()->ref_count () == 0 )
799- ToggleImmediateRef (true );
800- immediate_info ()->ref_count_inc (1 );
801- }
802-
803- template <typename Fn>
804- void Environment::SetUnrefImmediate (Fn&& cb) {
805- CreateImmediate (std::move (cb), false );
793+ if (flags & CallbackFlags::kRefed ) {
794+ if (immediate_info ()->ref_count () == 0 )
795+ ToggleImmediateRef (true );
796+ immediate_info ()->ref_count_inc (1 );
797+ }
806798}
807799
808800template <typename Fn>
809- void Environment::SetImmediateThreadsafe (Fn&& cb, bool refed ) {
810- auto callback =
811- native_immediates_threadsafe_. CreateCallback ( std::move (cb), refed );
801+ void Environment::SetImmediateThreadsafe (Fn&& cb, CallbackFlags::Flags flags ) {
802+ auto callback = native_immediates_threadsafe_. CreateCallback (
803+ std::move (cb), flags );
812804 {
813805 Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
814806 native_immediates_threadsafe_.Push (std::move (callback));
@@ -818,8 +810,8 @@ void Environment::SetImmediateThreadsafe(Fn&& cb, bool refed) {
818810
819811template <typename Fn>
820812void Environment::RequestInterrupt (Fn&& cb) {
821- auto callback =
822- native_immediates_interrupts_. CreateCallback ( std::move (cb), false );
813+ auto callback = native_immediates_interrupts_. CreateCallback (
814+ std::move (cb), CallbackFlags:: kRefed );
823815 {
824816 Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
825817 native_immediates_interrupts_.Push (std::move (callback));
0 commit comments