@@ -707,29 +707,21 @@ inline void IsolateData::set_options(
707
707
}
708
708
709
709
template <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 );
712
712
native_immediates_.Push (std::move (callback));
713
- }
714
-
715
- template <typename Fn>
716
- void Environment::SetImmediate (Fn&& cb) {
717
- CreateImmediate (std::move (cb), true );
718
713
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
+ }
727
719
}
728
720
729
721
template <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 );
733
725
{
734
726
Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
735
727
native_immediates_threadsafe_.Push (std::move (callback));
@@ -740,8 +732,8 @@ void Environment::SetImmediateThreadsafe(Fn&& cb, bool refed) {
740
732
741
733
template <typename Fn>
742
734
void 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 );
745
737
{
746
738
Mutex::ScopedLock lock (native_immediates_threadsafe_mutex_);
747
739
native_immediates_interrupts_.Push (std::move (callback));
0 commit comments