Artifact
67200c8d72f925a81baca6aa86fb18427386ae5eab0ba540b6b1819c6f1e21c3:
Attachment "tcl.patch" to
ticket [010d8f3885]
added by
stevel
2025-02-25 08:55:27.
0000: 49 6e 64 65 78 3a 20 75 6e 69 78 2f 74 63 6c 45 Index: unix/tclE
0010: 70 6f 6c 6c 4e 6f 74 66 79 2e 63 0a 3d 3d 3d 3d pollNotfy.c.====
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 2d ==============.-
0060: 2d 2d 20 75 6e 69 78 2f 74 63 6c 45 70 6f 6c 6c -- unix/tclEpoll
0070: 4e 6f 74 66 79 2e 63 0a 2b 2b 2b 20 75 6e 69 78 Notfy.c.+++ unix
0080: 2f 74 63 6c 45 70 6f 6c 6c 4e 6f 74 66 79 2e 63 /tclEpollNotfy.c
0090: 0a 40 40 20 2d 32 32 31 2c 31 34 20 2b 32 32 31 .@@ -221,14 +221
00a0: 2c 31 33 20 40 40 0a 20 20 20 20 20 20 2a 20 61 ,13 @@. * a
00b0: 64 64 65 64 20 6f 72 20 64 65 6c 65 74 65 64 20 dded or deleted
00c0: 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 from the list of
00d0: 20 46 69 6c 65 48 61 6e 64 6c 65 72 73 20 61 73 FileHandlers as
00e0: 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 72 65 sociated with re
00f0: 67 75 6c 61 72 0a 20 20 20 20 20 20 2a 20 66 69 gular. * fi
0100: 6c 65 73 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f les belonging to
0110: 20 74 73 64 50 74 72 2e 0a 20 20 20 20 20 20 2a tsdPtr.. *
0120: 2f 0a 20 0a 20 20 20 20 20 69 66 20 28 54 63 6c /. . if (Tcl
0130: 4f 53 66 73 74 61 74 28 66 69 6c 65 50 74 72 2d OSfstat(filePtr-
0140: 3e 66 64 2c 20 26 66 64 53 74 61 74 29 20 3d 3d >fd, &fdStat) ==
0150: 20 2d 31 29 20 7b 0a 2d 09 54 63 6c 5f 50 61 6e -1) {.-.Tcl_Pan
0160: 69 63 28 22 66 73 74 61 74 3a 20 25 73 22 2c 20 ic("fstat: %s",
0170: 73 74 72 65 72 72 6f 72 28 65 72 72 6e 6f 29 29 strerror(errno))
0180: 3b 0a 2d 20 20 20 20 7d 0a 2d 0a 2d 20 20 20 69 ;.- }.-.- i
0190: 66 20 28 65 70 6f 6c 6c 5f 63 74 6c 28 74 73 64 f (epoll_ctl(tsd
01a0: 50 74 72 2d 3e 65 76 65 6e 74 73 46 64 2c 20 6f Ptr->eventsFd, o
01b0: 70 2c 20 66 69 6c 65 50 74 72 2d 3e 66 64 2c 20 p, filePtr->fd,
01c0: 26 6e 65 77 45 76 65 6e 74 29 20 3d 3d 20 2d 31 &newEvent) == -1
01d0: 29 20 7b 0a 2b 09 72 65 74 75 72 6e 3b 0a 2b 09 ) {.+.return;.+.
01e0: 4c 49 53 54 5f 52 45 4d 4f 56 45 28 66 69 6c 65 LIST_REMOVE(file
01f0: 50 74 72 2c 20 72 65 61 64 79 4e 6f 64 65 29 3b Ptr, readyNode);
0200: 0a 2b 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 .+ } else if
0210: 28 65 70 6f 6c 6c 5f 63 74 6c 28 74 73 64 50 74 (epoll_ctl(tsdPt
0220: 72 2d 3e 65 76 65 6e 74 73 46 64 2c 20 6f 70 2c r->eventsFd, op,
0230: 20 66 69 6c 65 50 74 72 2d 3e 66 64 2c 20 26 6e filePtr->fd, &n
0240: 65 77 45 76 65 6e 74 29 20 3d 3d 20 2d 31 29 20 ewEvent) == -1)
0250: 7b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 {. switch
0260: 20 28 65 72 72 6e 6f 29 20 7b 0a 20 09 20 20 20 (errno) {. .
0270: 20 63 61 73 65 20 45 50 45 52 4d 3a 0a 20 09 09 case EPERM:. ..
0280: 73 77 69 74 63 68 20 28 6f 70 29 20 7b 0a 20 09 switch (op) {. .
0290: 09 63 61 73 65 20 45 50 4f 4c 4c 5f 43 54 4c 5f .case EPOLL_CTL_
02a0: 41 44 44 3a 0a 20 09 09 20 20 20 20 69 66 20 28 ADD:. .. if (
02b0: 69 73 4e 65 77 29 20 7b 0a 0a isNew) {..