@@ -786,29 +786,21 @@ inline void IsolateData::set_options(
786
786
}
787
787
788
788
template <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 );
791
791
native_immediates_.Push (std::move (callback));
792
- }
793
-
794
- template <typename Fn>
795
- void Environment::SetImmediate (Fn&& cb) {
796
- CreateImmediate (std::move (cb), true );
797
792
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
+ }
806
798
}
807
799
808
800
template <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 );
812
804
{
813
805
Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
814
806
native_immediates_threadsafe_.Push (std::move (callback));
@@ -818,8 +810,8 @@ void Environment::SetImmediateThreadsafe(Fn&& cb, bool refed) {
818
810
819
811
template <typename Fn>
820
812
void 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 );
823
815
{
824
816
Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
825
817
native_immediates_interrupts_.Push (std::move (callback));
0 commit comments