Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
1136-erts-Fix-erts_poll_get_selected_events-on-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1136-erts-Fix-erts_poll_get_selected_events-on-some-platf.patch of Package erlang
From fc3295b1ebeed1235d12983184ba806f2ce2f525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20H=C3=B6gberg?= <john@erlang.org> Date: Wed, 7 Dec 2022 11:20:11 +0100 Subject: [PATCH 1/2] erts: Fix erts_poll_get_selected_events on some platforms Linux 5.15.0 has an extra line with `ino` before `tfd`, which needs to be skipped before parsing the latter. --- erts/emulator/sys/common/erl_poll.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/erts/emulator/sys/common/erl_poll.c b/erts/emulator/sys/common/erl_poll.c index 3667a03512..b41f3cdad7 100644 --- a/erts/emulator/sys/common/erl_poll.c +++ b/erts/emulator/sys/common/erl_poll.c @@ -2466,7 +2466,7 @@ ERTS_POLL_EXPORT(erts_poll_get_selected_events)(ErtsPollSet *ps, char fname[30]; char s[256]; FILE *f; - unsigned int pos, flags, mnt_id; + unsigned int pos, flags, mnt_id, ino; int hdr_lines, line = 1; sprintf(fname,"/proc/%d/fdinfo/%d",getpid(), ps->kp_fd); for (fd = 0; fd < len; fd++) @@ -2476,14 +2476,16 @@ ERTS_POLL_EXPORT(erts_poll_get_selected_events)(ErtsPollSet *ps, fprintf(stderr,"failed to open file %s, errno = %d\n", fname, errno); return; } - hdr_lines = fscanf(f,"pos:\t%x\nflags:\t%x\nmnt_id:\t%x\n", - &pos, &flags, &mnt_id); + + hdr_lines = fscanf(f,"pos:\t%x\nflags:\t%x\nmnt_id:\t%x\nino:\t%x\n", + &pos, &flags, &mnt_id, &ino); if (hdr_lines < 2) { fprintf(stderr,"failed to parse file %s, errno = %d\n", fname, errno); ASSERT(0); fclose(f); return; } + line += hdr_lines; while (fgets(s, sizeof(s) / sizeof(*s), f)) { /* tfd: 10 events: 40000019 data: 180000000a */ -- 2.35.3
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