X-Git-Url: https://deadsoftware.ru/gitweb?p=cpc.git;a=blobdiff_plain;f=src%2Fnative%2Flinux%2F486%2FSystem%2FMod%2FKernel.cp;h=4c8688e00fa7f81f9050eeaa96a876549e7c1eb8;hp=115a773f82860be78230ca4b089622ee056e17aa;hb=e01013bb2dfa7aaab246a94bdde530fd91ea4a43;hpb=251568e0c1489842d392670644780b46ae38f83c diff --git a/src/native/linux/486/System/Mod/Kernel.cp b/src/native/linux/486/System/Mod/Kernel.cp index 115a773..4c8688e 100644 --- a/src/native/linux/486/System/Mod/Kernel.cp +++ b/src/native/linux/486/System/Mod/Kernel.cp @@ -237,7 +237,9 @@ MODULE Kernel; wouldFinalize: BOOLEAN; - watcher*: PROCEDURE (event: INTEGER); (* for debugging *) + watcher*: PROCEDURE (event: INTEGER); (* for debugging *) + + intTrap*: BOOLEAN; PROCEDURE Erase (adr, words: INTEGER); BEGIN @@ -1563,7 +1565,7 @@ MODULE Kernel; IF isTry THEN setjmp._longjmp(tryEnv, 1) END; - IF err = 128 THEN (* do nothing *) + IF (err = 128) OR (err = 200) & ~intTrap THEN (* do nothing *) ELSIF (trapViewer # NIL) & (restart # NIL) & ~trapped & ~guarded THEN trapped := TRUE; trapViewer() ELSE DefaultTrapViewer @@ -1637,7 +1639,7 @@ MODULE Kernel; IF isTry THEN setjmp._longjmp(tryEnv, 1) END; - IF err = 128 THEN (* do nothing *) + IF (err = 128) OR (err = 200) & ~intTrap THEN (* do nothing *) ELSIF (trapViewer # NIL) & (restart # NIL) & ~trapped & ~guarded THEN trapped := TRUE; trapViewer() ELSE DefaultTrapViewer @@ -1676,6 +1678,7 @@ MODULE Kernel; PROCEDURE Init; VAR i: INTEGER; BEGIN + intTrap := TRUE; pagesize := unistd.sysconf(unistd._SC_PAGESIZE); (* init heap *)