Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Make it work again with new epoll Notifier
Warning: might need some more tweaks if it turns out to break other uses. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | tcl-469-1st-try |
Files: | files | file ages | folders |
SHA1: |
434eb7d003df1956af09c7c806910ed2 |
User & Date: | avl42 2017-07-22 22:49:41 |
Original User & Date: | fa 2017-07-22 22:49:41 |
Context
2018-02-04
| ||
13:49 | getting it closer to working. Closed-Leaf check-in: b7161983e5 user: avl42 tags: tcl-469-1st-try | |
2017-07-22
| ||
22:49 |
Make it work again with new epoll Notifier
Warning: might need some more tweaks if it turns out to ... check-in: 434eb7d003 user: avl42 tags: tcl-469-1st-try | |
2017-07-16
| ||
20:55 | fileevent $ch exception ... check-in: 5610dcf5cd user: avl tags: tcl-469-1st-try | |
Changes
Changes to unix/tclEpollNotfy.c.
︙ | ︙ | |||
216 217 218 219 220 221 222 | int isNew) { struct epoll_event newEvent; struct PlatformEventData *newPedPtr; struct stat fdStat; newEvent.events = 0; | | > > > | | | 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 | int isNew) { struct epoll_event newEvent; struct PlatformEventData *newPedPtr; struct stat fdStat; newEvent.events = 0; if (filePtr->mask & TCL_EXCEPTION) { newEvent.events |= EPOLLERR; } if (filePtr->mask & TCL_READABLE) { newEvent.events |= EPOLLIN; } if (filePtr->mask & TCL_WRITABLE) { newEvent.events |= EPOLLOUT; } if (isNew) { newPedPtr = ckalloc(sizeof(*newPedPtr)); newPedPtr->filePtr = filePtr; newPedPtr->tsdPtr = tsdPtr; filePtr->pedPtr = newPedPtr; } newEvent.data.ptr = filePtr->pedPtr; /* * N.B. As discussed in Tcl_WaitForEvent(), epoll(7) does not sup- * port regular files (S_IFREG.) Therefore, filePtr is in these * cases simply added or deleted from the list of FileHandlers * associated with regular files belonging to tsdPtr. */ if (0 && fstat(filePtr->fd, &fdStat) == -1) { Tcl_Panic("fstat: %s", strerror(errno)); } else if (0 && (fdStat.st_mode & S_IFMT) == S_IFREG) { switch (op) { case EPOLL_CTL_ADD: if (isNew) { LIST_INSERT_HEAD(&tsdPtr->firstReadyFileHandlerPtr, filePtr, readyNode); } break; case EPOLL_CTL_DEL: |
︙ | ︙ |