Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | [Bug 3541646] Don't panic on triggerPipe overrun |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
8937ef6b48fca0c9e2c8802dc8acab46 |
User & Date: | jan.nijtmans 2012-07-10 18:28:48 |
Context
2012-07-11
| ||
19:24 | [Bug #3362446]: registry keys command fails with 8.5/8.6. Follow Microsofts example better in order ... check-in: b27068f63e user: jan.nijtmans tags: core-8-5-branch | |
2012-07-10
| ||
20:27 | merge 8.5 check-in: c7c6dfcb5b user: dgp tags: trunk | |
18:28 | [Bug 3541646] Don't panic on triggerPipe overrun check-in: 8937ef6b48 user: jan.nijtmans tags: core-8-5-branch | |
18:21 | Update changes, repair ChangeLog check-in: f19d6cd6ae user: dgp tags: core-8-5-branch | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2012-07-10 Donal K. Fellows <[email protected]> * win/tclWinSock.c (InitializeHostName): Corrected logic that extracted the name of the computer from the gethostname call so that it would use the name on success, not failure. Also ensured that the buffer size is exactly that recommended by Microsoft. | > > > > | 1 2 3 4 5 6 7 8 9 10 11 | 2012-07-10 Jan Nijtmans <[email protected]> * unix/tclUnixNotfy.c: [Bug 3541646] Don't panic on triggerPipe overrun 2012-07-10 Donal K. Fellows <[email protected]> * win/tclWinSock.c (InitializeHostName): Corrected logic that extracted the name of the computer from the gethostname call so that it would use the name on success, not failure. Also ensured that the buffer size is exactly that recommended by Microsoft. |
︙ | ︙ |
Changes to unix/tclUnixNotfy.c.
︙ | ︙ | |||
336 337 338 339 340 341 342 | * and check for EOF in the notifier thread because if a background * child process was created with exec, select() would not register * the EOF on the pipe until the child processes had terminated. [Bug: * 4139] [Bug: 1222872] */ if (write(triggerPipe, "q", 1) != 1) { | | | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 | * and check for EOF in the notifier thread because if a background * child process was created with exec, select() would not register * the EOF on the pipe until the child processes had terminated. [Bug: * 4139] [Bug: 1222872] */ if (write(triggerPipe, "q", 1) != 1) { Tcl_Panic("Tcl_FinalizeNotifier: unable to write q to triggerPipe"); } close(triggerPipe); while(triggerPipe >= 0) { Tcl_ConditionWait(¬ifierCV, ¬ifierMutex, NULL); } result = Tcl_JoinThread(notifierThread, NULL); |
︙ | ︙ | |||
875 876 877 878 879 880 881 | if (waitingListPtr) { waitingListPtr->prevPtr = tsdPtr; } tsdPtr->prevPtr = 0; waitingListPtr = tsdPtr; tsdPtr->onList = 1; | | | | 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 | if (waitingListPtr) { waitingListPtr->prevPtr = tsdPtr; } tsdPtr->prevPtr = 0; waitingListPtr = tsdPtr; tsdPtr->onList = 1; if ((write(triggerPipe, "", 1) == -1) && (errno != EAGAIN)) { Tcl_Panic("Tcl_WaitForEvent: unable to write to triggerPipe"); } } FD_ZERO(&(tsdPtr->readyMasks.readable)); FD_ZERO(&(tsdPtr->readyMasks.writable)); FD_ZERO(&(tsdPtr->readyMasks.exceptional)); |
︙ | ︙ | |||
938 939 940 941 942 943 944 | waitingListPtr = tsdPtr->nextPtr; } if (tsdPtr->nextPtr) { tsdPtr->nextPtr->prevPtr = tsdPtr->prevPtr; } tsdPtr->nextPtr = tsdPtr->prevPtr = NULL; tsdPtr->onList = 0; | | | | 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 | waitingListPtr = tsdPtr->nextPtr; } if (tsdPtr->nextPtr) { tsdPtr->nextPtr->prevPtr = tsdPtr->prevPtr; } tsdPtr->nextPtr = tsdPtr->prevPtr = NULL; tsdPtr->onList = 0; if ((write(triggerPipe, "", 1) == -1) && (errno != EAGAIN)) { Tcl_Panic("Tcl_WaitForEvent: unable to write to triggerPipe"); } } #else tsdPtr->readyMasks = tsdPtr->checkMasks; numFound = select(tsdPtr->numFdBits, &(tsdPtr->readyMasks.readable), &(tsdPtr->readyMasks.writable), &(tsdPtr->readyMasks.exceptional), |
︙ | ︙ |