File: unsubmitted-prof-eintr.diff

package info (click to toggle)
glibc 2.24-11%2Bdeb9u3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 225,316 kB
  • sloc: ansic: 996,116; asm: 261,826; sh: 10,483; makefile: 9,849; cpp: 4,169; python: 3,971; perl: 2,254; awk: 1,753; pascal: 1,521; yacc: 291; sed: 80
file content (22 lines) | stat: -rw-r--r-- 668 bytes parent folder | download | duplicates (4)
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_not_cancel ("gmon.out", O_CREAT|O_TRUNC|O_WRONLY|O_NOFOLLOW,
 			      0666);
+       while (fd < 0 && errno == EINTR);
+
 	if (fd < 0)
 	  {
 	    char buf[300];