File: unsubmitted-prof-eintr.diff

package info (click to toggle)
glibc 2.41-12
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie, trixie-proposed-updates
  • size: 300,384 kB
  • sloc: ansic: 1,050,583; asm: 238,243; makefile: 20,379; python: 13,537; sh: 11,827; cpp: 5,197; awk: 1,795; perl: 317; yacc: 292; pascal: 182; sed: 19
file content (22 lines) | stat: -rw-r--r-- 686 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
When profiling ext2fs, the shutdown stops all RPC, which thus interrupts this
open, and we have to retry here.

TODO: is open really supposed to expose such EINTR?  Should the generic gmon
loop around EINTR (since there might be signals happening indeed)

Index: glibc-2.22/gmon/gmon.c
===================================================================
--- glibc-2.22.orig/gmon/gmon.c
+++ glibc-2.22/gmon/gmon.c
@@ -357,8 +357,11 @@ write_gmon (void)
 
     if (fd == -1)
       {
+       do
 	fd = __open_nocancel ("gmon.out", O_CREAT | O_TRUNC | O_WRONLY
 			      | O_NOFOLLOW | O_CLOEXEC, 0666);
+       while (fd < 0 && errno == EINTR);
+
 	if (fd < 0)
 	  {
 	    char buf[300];