Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: erlang/otp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 89fc8b6e7b9bc4c0838fe06c0ae79ff79cb6f2f6
Choose a base ref
..
head repository: erlang/otp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0a3cb7fe87262da21fc1ac5c7e7d8c9ba79a7552
Choose a head ref
Showing with 5 additions and 7 deletions.
  1. +5 −7 erts/emulator/sys/common/erl_check_io.c
12 changes: 5 additions & 7 deletions erts/emulator/sys/common/erl_check_io.c
Original file line number Diff line number Diff line change
@@ -494,6 +494,11 @@ erts_io_control_wakeup(ErtsDrvEventState *state, ErtsPollOp op,
}
}
pe &= ~ERTS_POLL_EV_IN;
if (state->flags & ERTS_EV_FLAG_IN_SCHEDULER) {
ERTS_ASSERT(state->active_events & ERTS_POLL_EV_IN);
} else {
ERTS_ASSERT(!(state->active_events & ERTS_POLL_EV_IN));
}
}
#endif

@@ -1082,8 +1087,6 @@ driver_select(ErlDrvPort ix, ErlDrvEvent e, int mode, int on)
ctl_op = ERTS_POLL_OP_ADD;
}
new_events = state->active_events;
if (state->flags & ERTS_EV_FLAG_IN_SCHEDULER)
new_events &= ~ERTS_POLL_EV_IN;
}
else {
ctl_events &= old_events;
@@ -2008,11 +2011,6 @@ erts_check_io(ErtsPollThread *psi, ErtsMonotonicTime timeout_time, int poll_only

reactive_events = state->active_events;

if (state->flags & ERTS_EV_FLAG_IN_SCHEDULER) {
reactive_events &= ~ERTS_POLL_EV_IN;
state->active_events |= ERTS_POLL_EV_IN;
}

/* Reactivate the poll op if there are still active events */
if (reactive_events) {
ErtsPollEvents new_events;