Tcl Source Code

Check-in [542ee37b9a]
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 | trunk | main
Files: files | file ages | folders
SHA3-256: 542ee37b9aec1750d5e068db413ad0b7e79feee78013c3298fca46b9d8cc39db
User & Date: jan.nijtmans 2024-04-25 09:41:59
Context
2024-04-25
15:03
Fix for [ef23a85ac6]: Tcl_PanicProc - Tcl9 & NaviServer. check-in: b95cc2b450 user: jan.nijtmans tags: trunk, main
09:44
Rebase to 9.0 Closed-Leaf check-in: 53dd5c45cd user: jan.nijtmans tags: bug-ef23a85ac6
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:29
Merge 8.7 (Tcl_ConsolePanic() should be TCL_NORETURN) check-in: 3880fbf427 user: jan.nijtmans tags: trunk, main
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.

330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
 *
 * Side effects:
 *	This procedure terminates the current thread.
 *
 *----------------------------------------------------------------------
 */

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







|







330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
 *
 * 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);