Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | 3574493 Avoid hanging on exit due to use of synchronization calls in routines called by DllMain(). |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-5-branch |
Files: | files | file ages | folders |
SHA1: |
ff936401538fabe6f1cc63fad9eecd56 |
User & Date: | dgp 2012-11-07 17:26:48 |
Context
2012-11-07
| ||
20:49 | Import tzdata2012i check-in: d3f74cece8 user: kbk tags: core-8-5-branch | |
17:36 | merge 8.5 check-in: 833ad6022e user: dgp tags: core-8-5-13-rc | |
17:30 | merge mark check-in: bbfde6b0fc user: dgp tags: trunk | |
17:26 | 3574493 Avoid hanging on exit due to use of synchronization calls in routines called by DllMain(). check-in: ff93640153 user: dgp tags: core-8-5-branch | |
17:24 | 3574493 Avoid hanging on exit due to use of synchronization calls in routines called by DllMain(). check-in: 42933eb98a user: dgp tags: core-8-4-branch | |
15:29 | merge-mark check-in: e9a3d02458 user: jan.nijtmans tags: core-8-5-branch | |
Changes
Changes to ChangeLog.
1 2 3 4 5 6 7 | 2012-11-06 Donal K. Fellows <[email protected]> * library/http/http.tcl (http::Finish): [Bug 3581754]: Ensure that callbacks are done at most once to prevent problems with timeouts on a keep-alive connection (combined with reentrant http package use) causing excessive stack growth. Not a fix for the underlying problem, but ensures that pain will be mostly kept away from users. | > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 | 2012-11-07 Don Porter <[email protected]> * win/tclWinSock.c: [Bug 3574493] Avoid hanging on exit due to use of synchronization calls in routines called by DllMain(). 2012-11-06 Donal K. Fellows <[email protected]> * library/http/http.tcl (http::Finish): [Bug 3581754]: Ensure that callbacks are done at most once to prevent problems with timeouts on a keep-alive connection (combined with reentrant http package use) causing excessive stack growth. Not a fix for the underlying problem, but ensures that pain will be mostly kept away from users. |
︙ | ︙ |
Changes to win/tclWinSock.c.
︙ | ︙ | |||
456 457 458 459 460 461 462 | { ThreadSpecificData *tsdPtr; tsdPtr = (ThreadSpecificData *) TclThreadDataKeyGet(&dataKey); if (tsdPtr != NULL) { if (tsdPtr->socketThread != NULL) { if (tsdPtr->hwnd != NULL) { | | < | | | | < | > | 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 | { ThreadSpecificData *tsdPtr; tsdPtr = (ThreadSpecificData *) TclThreadDataKeyGet(&dataKey); if (tsdPtr != NULL) { if (tsdPtr->socketThread != NULL) { if (tsdPtr->hwnd != NULL) { if (PostMessage(tsdPtr->hwnd, SOCKET_TERMINATE, 0, 0)) { /* * Wait for the thread to exit. This ensures that we are * completely cleaned up before we leave this function. */ WaitForSingleObject(tsdPtr->readyEvent, INFINITE); } tsdPtr->hwnd = NULL; } CloseHandle(tsdPtr->socketThread); tsdPtr->socketThread = NULL; } if (tsdPtr->readyEvent != NULL) { CloseHandle(tsdPtr->readyEvent); |
︙ | ︙ |