picolisp

Unnamed repository; edit this file to name it for gitweb.
git clone https://logand.com/git/picolisp.git/
Log | Files | Refs | README | LICENSE

commit cfe827358326e3400074b7e7d470610e4c54d3bd
parent 5ea5b055514c7432755cd5570180c92314ec87b9
Author: Alexander Burger <abu@software-lab.de>
Date:   Tue, 21 May 2013 17:23:54 +0200

Discard active coroutine upon error
Diffstat:
Msrc64/err.l | 19+++++++++++++++++++
Msrc64/tags | 184++++++++++++++++++++++++++++++++++++++++----------------------------------------
2 files changed, 111 insertions(+), 92 deletions(-)

diff --git a/src64/err.l b/src64/err.l @@ -321,6 +321,25 @@ while nz # Yes call popCtlFiles # Clean up loop + ld X (Stack1) # Search through stack segments + ld C (Stacks) # Segment bitmask + ld A 1 + do + shr C 1 # In use? + if c # Yes + null (X -II) # Active? + if z # Yes: Discard coroutine + xor (Stacks) A # Clear in segment bitmask + if z # Stopped last coroutine? + ld (StkLimit) 0 # Yes: Clear stack limit + end + ret + end # nz + end + while nz + sub X (StkSize) # Next segment + add A A + loop ret ### Checks ### diff --git a/src64/tags b/src64/tags @@ -748,102 +748,102 @@ sys/x86-64.linux.defs.l,1959 fishAXY1640,41196 doBy1669,41750 -./err.l,1922 +./err.l,1927 dbgS5,73 errnoEXY24,572 errEXYZ33,734 unwindC_Z169,4297 -needSymAX327,8789 -needSymEX339,8988 -needVarAX350,9177 -needVarEX360,9354 -checkVarAX369,9521 -checkVarYX377,9657 -checkVarEX385,9793 -protErrEX390,9901 -symNsErrEX394,9951 -stkErr399,10026 -stkErrE401,10051 -stkErrX403,10077 -stkErrEX405,10103 -argErrAX410,10191 -argErrEX412,10218 -numErrAX416,10266 -numErrEX418,10293 -cntErrAX422,10341 -cntErrCX424,10368 -cntErrEX426,10395 -symErrAX430,10443 -symErrYX432,10470 -symErrEX434,10497 -extErrEX438,10545 -pairErrAX442,10593 -pairErrEX444,10621 -atomErrAX448,10671 -atomErrEX450,10699 -lstErrAX454,10749 -lstErrEX456,10776 -varErrAX460,10824 -varErrEX462,10851 -divErrX466,10899 -renErrEX471,10956 -makeErrX475,11004 -reentErrEX480,11063 -yieldErrX484,11115 -yieldErrEX486,11143 -msgErrYX490,11195 -msgErrAX492,11222 -msgErrEX494,11249 -brkErrX498,11297 -openErrEX504,11367 -closeErrX508,11418 -closeErrEX510,11446 -pipeErrX514,11499 -forkErrX519,11559 -waitPidErrX524,11618 -badFdErrEX529,11684 -noFdErrX533,11736 -eofErr538,11795 -suparErrE544,11861 -badInputErrB549,11922 -badDotErrE557,12013 -selectErrX562,12073 -wrBytesErr567,12137 -wrChildErr573,12212 -wrSyncErrX579,12287 -wrJnlErr584,12351 -wrLogErr590,12422 -truncErrX596,12493 -dbSyncErrX601,12555 -trSyncErrX606,12619 -lockErr611,12683 -dbfErrX617,12752 -jnlErrX622,12809 -idErrXL627,12866 -dbRdErr632,12940 -dbWrErr638,13009 -dbSizErr644,13078 -tellErr650,13148 -ipSocketErrX656,13216 -ipGetsocknameErrX661,13284 -ipV6onlyErrX666,13362 -ipReuseaddrErrX671,13430 -ipBindErrX676,13504 -ipListenErrX681,13568 -udpOvflErr686,13636 -undefinedCE693,13735 -undefinedCX695,13765 -undefinedEX697,13795 -dlErrX701,13848 -ret709,13994 -retc711,14015 -retnc714,14045 -retz717,14076 -retnz720,14106 -retNull723,14137 -retNil726,14172 -retT729,14208 -retE_E732,14243 +needSymAX346,9296 +needSymEX358,9495 +needVarAX369,9684 +needVarEX379,9861 +checkVarAX388,10028 +checkVarYX396,10164 +checkVarEX404,10300 +protErrEX409,10408 +symNsErrEX413,10458 +stkErr418,10533 +stkErrE420,10558 +stkErrX422,10584 +stkErrEX424,10610 +argErrAX429,10698 +argErrEX431,10725 +numErrAX435,10773 +numErrEX437,10800 +cntErrAX441,10848 +cntErrCX443,10875 +cntErrEX445,10902 +symErrAX449,10950 +symErrYX451,10977 +symErrEX453,11004 +extErrEX457,11052 +pairErrAX461,11100 +pairErrEX463,11128 +atomErrAX467,11178 +atomErrEX469,11206 +lstErrAX473,11256 +lstErrEX475,11283 +varErrAX479,11331 +varErrEX481,11358 +divErrX485,11406 +renErrEX490,11463 +makeErrX494,11511 +reentErrEX499,11570 +yieldErrX503,11622 +yieldErrEX505,11650 +msgErrYX509,11702 +msgErrAX511,11729 +msgErrEX513,11756 +brkErrX517,11804 +openErrEX523,11874 +closeErrX527,11925 +closeErrEX529,11953 +pipeErrX533,12006 +forkErrX538,12066 +waitPidErrX543,12125 +badFdErrEX548,12191 +noFdErrX552,12243 +eofErr557,12302 +suparErrE563,12368 +badInputErrB568,12429 +badDotErrE576,12520 +selectErrX581,12580 +wrBytesErr586,12644 +wrChildErr592,12719 +wrSyncErrX598,12794 +wrJnlErr603,12858 +wrLogErr609,12929 +truncErrX615,13000 +dbSyncErrX620,13062 +trSyncErrX625,13126 +lockErr630,13190 +dbfErrX636,13259 +jnlErrX641,13316 +idErrXL646,13373 +dbRdErr651,13447 +dbWrErr657,13516 +dbSizErr663,13585 +tellErr669,13655 +ipSocketErrX675,13723 +ipGetsocknameErrX680,13791 +ipV6onlyErrX685,13869 +ipReuseaddrErrX690,13937 +ipBindErrX695,14011 +ipListenErrX700,14075 +udpOvflErr705,14143 +undefinedCE712,14242 +undefinedCX714,14272 +undefinedEX716,14302 +dlErrX720,14355 +ret728,14501 +retc730,14522 +retnc733,14552 +retz736,14583 +retnz739,14613 +retNull742,14644 +retNil745,14679 +retT748,14715 +retE_E751,14750 ./sym.l,1776 cmpLongAX_F5,78