From f4691c73c40b012e036f6cda82150468843b8a68 Mon Sep 17 00:00:00 2001 From: ceriel Date: Fri, 15 Mar 1991 09:24:03 +0000 Subject: [PATCH] Call _cleanup before _exit --- lang/m2/libm2/SYSTEM.c | 1 + lang/m2/libm2/catch.c | 9 +++++---- lang/m2/libm2/halt.c | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lang/m2/libm2/SYSTEM.c b/lang/m2/libm2/SYSTEM.c index b8c8bba6a..51def5596 100644 --- a/lang/m2/libm2/SYSTEM.c +++ b/lang/m2/libm2/SYSTEM.c @@ -71,6 +71,7 @@ _SYSTEM__NEWPROCESS(p, a, n, p1) Just call the coroutine procedure. */ (*(curproc->proc))(); + _cleanup(); _exit(0); } } diff --git a/lang/m2/libm2/catch.c b/lang/m2/libm2/catch.c index 909b3f7e3..cc2b59cde 100644 --- a/lang/m2/libm2/catch.c +++ b/lang/m2/libm2/catch.c @@ -52,8 +52,6 @@ static struct errm { { -1, 0} }; -extern exit(); - catch(trapno) int trapno; { @@ -93,11 +91,14 @@ catch(trapno) signal(__signo, SIG_DFL); _cleanup(); kill(getpid(), __signo); - exit(trapno); + _exit(trapno); } #endif #endif #endif - if (trapno != M2_FORCH) exit(trapno); + if (trapno != M2_FORCH) { + _cleanup(); + _exit(trapno); + } SIG(catch); } diff --git a/lang/m2/libm2/halt.c b/lang/m2/libm2/halt.c index 7b6508a36..0c257d0db 100644 --- a/lang/m2/libm2/halt.c +++ b/lang/m2/libm2/halt.c @@ -32,5 +32,6 @@ CallAtEnd(p) halt() { - exit(0); + _cleanup(); + _exit(0); } -- 2.34.1