Tcl Source Code

Check-in [3483b63d35]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Make it more clear that TclpThreadExit() and Tcl_ExitThread() are TCL_NORETURN too.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-branch
Files: files | file ages | folders
SHA3-256: 3483b63d35366807d81e04f4eed23ab02827d74522fd3b61edf1d00050a99c47
User & Date: jan.nijtmans 2024-04-25 09:40:46
Context
2024-04-25
14:59
Fix for [ef23a85ac6]: Tcl_PanicProc - Tcl9 & NaviServer. check-in: 0753949a8d user: jan.nijtmans tags: core-8-branch
09:41
Make it more clear that TclpThreadExit() and Tcl_ExitThread() are TCL_NORETURN too check-in: 542ee37b9a user: jan.nijtmans tags: trunk, main
09:40
Make it more clear that TclpThreadExit() and Tcl_ExitThread() are TCL_NORETURN too. check-in: 3483b63d35 user: jan.nijtmans tags: core-8-branch
08:24
(cherry-pick): Fix building of libtclzip for out-of-source builds check-in: 5ae320c23c user: jan.nijtmans tags: core-8-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tclThread.c.

453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
 *
 * Side effects:
 *	All thread exit handlers are invoked, then the thread dies.
 *
 *----------------------------------------------------------------------
 */

void
Tcl_ExitThread(
    int status)
{
    Tcl_FinalizeThread();
    TclpThreadExit(status);
}








|







453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
 *
 * Side effects:
 *	All thread exit handlers are invoked, then the thread dies.
 *
 *----------------------------------------------------------------------
 */

TCL_NORETURN void
Tcl_ExitThread(
    int status)
{
    Tcl_FinalizeThread();
    TclpThreadExit(status);
}

Changes to unix/tclUnixThrd.c.

338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
 *
 * Side effects:
 *	This procedure terminates the current thread.
 *
 *----------------------------------------------------------------------
 */

void
TclpThreadExit(
    int status)
{
#if TCL_THREADS
    pthread_exit(INT2PTR(status));
#else /* TCL_THREADS */
    exit(status);







|







338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
 *
 * Side effects:
 *	This procedure terminates the current thread.
 *
 *----------------------------------------------------------------------
 */

TCL_NORETURN void
TclpThreadExit(
    int status)
{
#if TCL_THREADS
    pthread_exit(INT2PTR(status));
#else /* TCL_THREADS */
    exit(status);

Changes to win/tclWinThrd.c.

287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
 *
 * Side effects:
 *	This procedure terminates the current thread.
 *
 *----------------------------------------------------------------------
 */

void
TclpThreadExit(
    int status)
{
    EnterCriticalSection(&joinLock);
    TclSignalExitThread(Tcl_GetCurrentThread(), status);
    LeaveCriticalSection(&joinLock);








|







287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
 *
 * Side effects:
 *	This procedure terminates the current thread.
 *
 *----------------------------------------------------------------------
 */

TCL_NORETURN void
TclpThreadExit(
    int status)
{
    EnterCriticalSection(&joinLock);
    TclSignalExitThread(Tcl_GetCurrentThread(), status);
    LeaveCriticalSection(&joinLock);