Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
2223-Filter-out-diff-from-cleared-oneshot-event...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2223-Filter-out-diff-from-cleared-oneshot-events.patch of Package erlang
From bdd43a0d335bf391e1133f140accb683fc68368d Mon Sep 17 00:00:00 2001 From: Sverker Eriksson <sverker@erlang.org> Date: Wed, 23 Mar 2022 19:18:39 +0100 Subject: [PATCH 3/4] Filter out diff from cleared oneshot events --- erts/emulator/sys/common/erl_check_io.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/erts/emulator/sys/common/erl_check_io.c b/erts/emulator/sys/common/erl_check_io.c index bf18502887..28716b313e 100644 --- a/erts/emulator/sys/common/erl_check_io.c +++ b/erts/emulator/sys/common/erl_check_io.c @@ -2693,9 +2693,17 @@ static int erts_debug_print_checkio_state(erts_dsprintf_buf_t *dsbufp, err = 1; } else { - ErtsPollEvents ev = cio_events; - if (ev != ep_events && ep_events != ERTS_POLL_EV_NONE) - err = 1; + if (ep_events != ERTS_POLL_EV_NONE) { + if (!ERTS_POLL_USE_KERNEL_POLL + || (!(state->flags & (ERTS_EV_FLAG_SCHEDULER|ERTS_EV_FLAG_FALLBACK)) + && ((cio_events ^ ep_events) & ep_events) != 0)) { + err = 1; + } + /* else: Kernel poll with oneshot (used by poller threads) + * may cause a race where an event just triggered and + * thereby was cleared in the pollset (ep_events). + */ + } erts_dsprintf(dsbufp, "cio_ev="); print_events(dsbufp, cio_events); erts_dsprintf(dsbufp, " ep_ev="); -- 2.34.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor