commit 61095adc010303389ca8d3a95067a7ae1212b11c
parent 07981be86c04fb29aee9426ce2341b366d7a105e
Author: Alexander Burger <abu@software-lab.de>
Date: Thu, 23 May 2013 11:00:05 +0200
Close files upon explicit coroutine stop
Diffstat:
M | lib/map | | | 104 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
M | src64/flow.l | | | 19 | ++++++++++++++++++- |
M | src64/io.l | | | 57 | ++++++++++++++++++++++++--------------------------------- |
M | src64/tags | | | 290 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
4 files changed, 240 insertions(+), 230 deletions(-)
diff --git a/lib/map b/lib/map
@@ -1,5 +1,5 @@
-! (2867 . "@src64/flow.l")
-$ (2969 . "@src64/flow.l")
+! (2884 . "@src64/flow.l")
+$ (2986 . "@src64/flow.l")
% (2572 . "@src64/big.l")
& (2807 . "@src64/big.l")
* (2389 . "@src64/big.l")
@@ -29,7 +29,7 @@ adr (596 . "@src64/main.l")
alarm (477 . "@src64/main.l")
all (788 . "@src64/sym.l")
and (1624 . "@src64/flow.l")
-any (3999 . "@src64/io.l")
+any (3990 . "@src64/io.l")
append (1339 . "@src64/subr.l")
apply (713 . "@src64/apply.l")
arg (2613 . "@src64/main.l")
@@ -46,7 +46,7 @@ bool (1724 . "@src64/flow.l")
box (828 . "@src64/flow.l")
box? (1131 . "@src64/sym.l")
by (1669 . "@src64/apply.l")
-bye (3417 . "@src64/flow.l")
+bye (3434 . "@src64/flow.l")
bytes (2973 . "@src64/subr.l")
caaaar (271 . "@src64/subr.l")
caaadr (288 . "@src64/subr.l")
@@ -62,7 +62,7 @@ caddar (409 . "@src64/subr.l")
cadddr (435 . "@src64/subr.l")
caddr (156 . "@src64/subr.l")
cadr (45 . "@src64/subr.l")
-call (3069 . "@src64/flow.l")
+call (3086 . "@src64/flow.l")
car (5 . "@src64/subr.l")
case (1965 . "@src64/flow.l")
catch (2467 . "@src64/flow.l")
@@ -83,12 +83,12 @@ cdddr (245 . "@src64/subr.l")
cddr (79 . "@src64/subr.l")
cdr (17 . "@src64/subr.l")
chain (1142 . "@src64/subr.l")
-char (3481 . "@src64/io.l")
+char (3472 . "@src64/io.l")
chop (1228 . "@src64/sym.l")
circ (817 . "@src64/subr.l")
circ? (2403 . "@src64/subr.l")
clip (1800 . "@src64/subr.l")
-close (4412 . "@src64/io.l")
+close (4403 . "@src64/io.l")
cmd (3223 . "@src64/main.l")
cnt (1413 . "@src64/apply.l")
co (2548 . "@src64/flow.l")
@@ -99,7 +99,7 @@ cond (1919 . "@src64/flow.l")
connect (227 . "@src64/net.l")
cons (747 . "@src64/subr.l")
copy (1226 . "@src64/subr.l")
-ctl (4285 . "@src64/io.l")
+ctl (4276 . "@src64/io.l")
ctty (3018 . "@src64/main.l")
cut (1931 . "@src64/sym.l")
date (2727 . "@src64/main.l")
@@ -115,15 +115,15 @@ diff (2590 . "@src64/subr.l")
dir (3153 . "@src64/main.l")
dm (545 . "@src64/flow.l")
do (2141 . "@src64/flow.l")
-e (2930 . "@src64/flow.l")
-echo (4443 . "@src64/io.l")
+e (2947 . "@src64/flow.l")
+echo (4434 . "@src64/io.l")
env (608 . "@src64/main.l")
-eof (3558 . "@src64/io.l")
-eol (3549 . "@src64/io.l")
-err (4265 . "@src64/io.l")
+eof (3549 . "@src64/io.l")
+eol (3540 . "@src64/io.l")
+err (4256 . "@src64/io.l")
errno (1613 . "@src64/main.l")
eval (175 . "@src64/flow.l")
-ext (5177 . "@src64/io.l")
+ext (5168 . "@src64/io.l")
ext? (1166 . "@src64/sym.l")
extern (1032 . "@src64/sym.l")
extra (1269 . "@src64/flow.l")
@@ -138,13 +138,13 @@ find (1322 . "@src64/apply.l")
fish (1613 . "@src64/apply.l")
flg? (2446 . "@src64/subr.l")
flip (1700 . "@src64/subr.l")
-flush (5152 . "@src64/io.l")
+flush (5143 . "@src64/io.l")
fold (3521 . "@src64/sym.l")
for (2230 . "@src64/flow.l")
-fork (3243 . "@src64/flow.l")
+fork (3260 . "@src64/flow.l")
format (2089 . "@src64/big.l")
free (1960 . "@src64/db.l")
-from (3577 . "@src64/io.l")
+from (3568 . "@src64/io.l")
full (1076 . "@src64/subr.l")
fun? (750 . "@src64/sym.l")
gc (436 . "@src64/gc.l")
@@ -157,38 +157,38 @@ gt0 (2718 . "@src64/big.l")
hash (2976 . "@src64/big.l")
head (1821 . "@src64/subr.l")
heap (523 . "@src64/main.l")
-hear (3262 . "@src64/io.l")
+hear (3253 . "@src64/io.l")
host (193 . "@src64/net.l")
id (1028 . "@src64/db.l")
idx (2171 . "@src64/sym.l")
if (1805 . "@src64/flow.l")
if2 (1824 . "@src64/flow.l")
ifn (1865 . "@src64/flow.l")
-in (4225 . "@src64/io.l")
+in (4216 . "@src64/io.l")
inc (2256 . "@src64/big.l")
index (2638 . "@src64/subr.l")
info (3055 . "@src64/main.l")
intern (1007 . "@src64/sym.l")
-ipid (3188 . "@src64/flow.l")
+ipid (3205 . "@src64/flow.l")
isa (967 . "@src64/flow.l")
job (1429 . "@src64/flow.l")
journal (971 . "@src64/db.l")
-key (3410 . "@src64/io.l")
-kill (3220 . "@src64/flow.l")
+key (3401 . "@src64/io.l")
+kill (3237 . "@src64/flow.l")
last (2045 . "@src64/subr.l")
le0 (2693 . "@src64/big.l")
length (2742 . "@src64/subr.l")
let (1479 . "@src64/flow.l")
let? (1540 . "@src64/flow.l")
lieu (1157 . "@src64/db.l")
-line (3733 . "@src64/io.l")
-lines (3886 . "@src64/io.l")
+line (3724 . "@src64/io.l")
+lines (3877 . "@src64/io.l")
link (1173 . "@src64/subr.l")
lisp (2282 . "@src64/main.l")
list (888 . "@src64/subr.l")
listen (160 . "@src64/net.l")
lit (150 . "@src64/flow.l")
-load (4202 . "@src64/io.l")
+load (4193 . "@src64/io.l")
lock (1185 . "@src64/db.l")
loop (2173 . "@src64/flow.l")
low? (3387 . "@src64/sym.l")
@@ -238,30 +238,30 @@ offset (2678 . "@src64/subr.l")
on (1717 . "@src64/sym.l")
onOff (1747 . "@src64/sym.l")
one (1780 . "@src64/sym.l")
-open (4369 . "@src64/io.l")
-opid (3204 . "@src64/flow.l")
+open (4360 . "@src64/io.l")
+opid (3221 . "@src64/flow.l")
opt (3344 . "@src64/main.l")
or (1640 . "@src64/flow.l")
-out (4245 . "@src64/io.l")
+out (4236 . "@src64/io.l")
pack (1279 . "@src64/sym.l")
pair (2395 . "@src64/subr.l")
pass (754 . "@src64/apply.l")
pat? (736 . "@src64/sym.l")
-path (1251 . "@src64/io.l")
-peek (3465 . "@src64/io.l")
+path (1270 . "@src64/io.l")
+peek (3456 . "@src64/io.l")
pick (1369 . "@src64/apply.l")
-pipe (4306 . "@src64/io.l")
-poll (3354 . "@src64/io.l")
+pipe (4297 . "@src64/io.l")
+poll (3345 . "@src64/io.l")
pool (651 . "@src64/db.l")
pop (1907 . "@src64/sym.l")
port (5 . "@src64/net.l")
-pr (5260 . "@src64/io.l")
+pr (5251 . "@src64/io.l")
pre? (1545 . "@src64/sym.l")
-prin (5076 . "@src64/io.l")
-prinl (5090 . "@src64/io.l")
-print (5116 . "@src64/io.l")
-println (5147 . "@src64/io.l")
-printsp (5132 . "@src64/io.l")
+prin (5067 . "@src64/io.l")
+prinl (5081 . "@src64/io.l")
+print (5107 . "@src64/io.l")
+println (5138 . "@src64/io.l")
+printsp (5123 . "@src64/io.l")
prior (2714 . "@src64/subr.l")
prog (1760 . "@src64/flow.l")
prog1 (1768 . "@src64/flow.l")
@@ -281,12 +281,12 @@ rand (3003 . "@src64/big.l")
range (998 . "@src64/subr.l")
rank (3049 . "@src64/subr.l")
raw (455 . "@src64/main.l")
-rd (5194 . "@src64/io.l")
-read (2674 . "@src64/io.l")
+rd (5185 . "@src64/io.l")
+read (2665 . "@src64/io.l")
replace (1500 . "@src64/subr.l")
rest (2642 . "@src64/main.l")
reverse (1679 . "@src64/subr.l")
-rewind (5160 . "@src64/io.l")
+rewind (5151 . "@src64/io.l")
rollback (1803 . "@src64/db.l")
rot (849 . "@src64/subr.l")
run (306 . "@src64/flow.l")
@@ -299,33 +299,33 @@ set (1616 . "@src64/sym.l")
setq (1649 . "@src64/sym.l")
sigio (493 . "@src64/main.l")
size (2809 . "@src64/subr.l")
-skip (3535 . "@src64/io.l")
+skip (3526 . "@src64/io.l")
sort (3978 . "@src64/subr.l")
sp? (727 . "@src64/sym.l")
-space (5094 . "@src64/io.l")
+space (5085 . "@src64/io.l")
split (1593 . "@src64/subr.l")
stack (552 . "@src64/main.l")
state (2009 . "@src64/flow.l")
stem (1990 . "@src64/subr.l")
-str (4053 . "@src64/io.l")
+str (4044 . "@src64/io.l")
str? (1145 . "@src64/sym.l")
strip (1577 . "@src64/subr.l")
struct (2073 . "@src64/main.l")
sub? (1578 . "@src64/sym.l")
sum (1460 . "@src64/apply.l")
super (1225 . "@src64/flow.l")
-sym (4039 . "@src64/io.l")
+sym (4030 . "@src64/io.l")
sym? (2435 . "@src64/subr.l")
symbols (942 . "@src64/sym.l")
-sync (3222 . "@src64/io.l")
+sync (3213 . "@src64/io.l")
sys (855 . "@src64/main.l")
t (1751 . "@src64/flow.l")
tail (1912 . "@src64/subr.l")
-tell (3294 . "@src64/io.l")
+tell (3285 . "@src64/io.l")
text (1407 . "@src64/sym.l")
throw (2493 . "@src64/flow.l")
-tick (3156 . "@src64/flow.l")
-till (3644 . "@src64/io.l")
+tick (3173 . "@src64/flow.l")
+till (3635 . "@src64/io.l")
time (2860 . "@src64/main.l")
touch (1181 . "@src64/sym.l")
trail (707 . "@src64/main.l")
@@ -343,16 +343,16 @@ use (1573 . "@src64/flow.l")
usec (2964 . "@src64/main.l")
val (1597 . "@src64/sym.l")
version (3358 . "@src64/main.l")
-wait (3184 . "@src64/io.l")
+wait (3175 . "@src64/io.l")
when (1884 . "@src64/flow.l")
while (2061 . "@src64/flow.l")
wipe (3262 . "@src64/sym.l")
with (1332 . "@src64/flow.l")
-wr (5277 . "@src64/io.l")
+wr (5268 . "@src64/io.l")
xchg (1672 . "@src64/sym.l")
xor (1701 . "@src64/flow.l")
x| (2887 . "@src64/big.l")
-yield (2722 . "@src64/flow.l")
+yield (2726 . "@src64/flow.l")
yoke (1197 . "@src64/subr.l")
zap (1195 . "@src64/sym.l")
zero (1765 . "@src64/sym.l")
diff --git a/src64/flow.l b/src64/flow.l
@@ -1,4 +1,4 @@
-# 19may13abu
+# 23may13abu
# (c) Software Lab. Alexander Burger
(code 'redefMsgEC)
@@ -2704,6 +2704,10 @@
if z # Stopped last coroutine?
ld (StkLimit) 0 # Yes: Clear stack limit
end
+ ld C (X (pack -II "-(EnvMid-EnvInFrames)")) # Open input frames
+ call closeCoFilesC
+ ld C (X (pack -II "-(EnvMid-EnvOutFrames)")) # Open output frames
+ call closeCoFilesC
ld E TSym # Return T
end
pop X
@@ -2863,6 +2867,19 @@
ld X (X) # Next frame
loop
+(code 'closeCoFilesC 0)
+ do
+ null C
+ while nz
+ null (C II) # 'pid'?
+ if nz # Yes
+ cc close((C I)) # Close 'fd'
+ call waitFileC # Wait for pipe process if necessary
+ end
+ ld C (C)
+ loop
+ ret
+
# (! . exe) -> any
(code 'doBreak 2)
ld E (E CDR) # exe
diff --git a/src64/io.l b/src64/io.l
@@ -1,4 +1,4 @@
-# 06feb13abu
+# 23may13abu
# (c) Software Lab. Alexander Burger
# Close file descriptor
@@ -139,7 +139,7 @@
ret
# Close input file
-(code 'closeInFileA)
+(code 'closeInFileA 0)
shl A 3 # Vector index
cmp A (InFDs) # 'fd' < 'InFDs'?
if lt # Yes
@@ -161,7 +161,7 @@
ret
# Close output file
-(code 'closeOutFileA)
+(code 'closeOutFileA 0)
shl A 3 # Vector index
cmp A (OutFDs) # 'fd' < 'OutFDs'?
if lt # Yes
@@ -181,6 +181,25 @@
end
ret
+# Wait for pipe process if necessary
+(code 'waitFileC 0)
+ cmp (C II) 1 # 'pid' > 1?
+ if gt # Yes
+ do
+ cc waitpid((C II) 0 0) # Wait for pipe process
+ nul4 # OK?
+ while s # No
+ call errno_A
+ cmp A EINTR # Interrupted?
+ jne closeErrX
+ null (Signal) # Signal?
+ if nz # Yes
+ call sighandler0
+ end
+ loop
+ end
+ ret
+
# Interruptible read
(code 'slowZ_F)
ld (Z I) 0 # Clear 'ix'
@@ -1874,21 +1893,7 @@
cc close((C I)) # Close 'fd'
ld A (C I) # Close input file
call closeInFileA
- cmp (C II) 1 # 'pid' > 1?
- if gt # Yes
- do
- cc waitpid((C II) 0 0) # Wait for pipe process
- nul4 # OK?
- while s # No
- call errno_A
- cmp A EINTR # Interrupted?
- jne closeErrX
- null (Signal) # Signal?
- if nz # Yes
- call sighandler0
- end
- loop
- end
+ call waitFileC # Wait for pipe process if necessary
else
ld A (InFile) # Current InFile?
null A
@@ -1927,21 +1932,7 @@
cc close((C I)) # Close 'fd'
ld A (C I) # Close input file
call closeOutFileA
- cmp (C II) 1 # 'pid' > 1?
- if gt # Yes
- do
- cc waitpid((C II) 0 0) # Wait for pipe process
- nul4 # OK?
- while s # No
- call errno_A
- cmp A EINTR # Interrupted?
- jne closeErrX
- null (Signal) # Signal?
- if nz # Yes
- call sighandler0
- end
- loop
- end
+ call waitFileC # Wait for pipe process if necessary
end
ld (PutB) (C III) # Retrieve 'put'
ld C (C) # Get link
diff --git a/src64/tags b/src64/tags
@@ -585,7 +585,7 @@ sys/x86-64.linux.defs.l,1959
doHash2976,70791
doRand3003,71394
-./io.l,2921
+./io.l,2942
closeAX5,75
unLockFileAC15,253
wrLockFileC23,487
@@ -598,130 +598,131 @@ sys/x86-64.linux.defs.l,1959
initInFileCA_A67,1523
initOutFileA_A106,2476
closeInFileA142,3345
-closeOutFileA164,3830
-slowZ_F185,4281
-slowNbC_FA207,4748
-rdBytesCEX_F247,5696
-rdBytesNbCEX_F268,6160
-wrBytesCEX_F317,7454
-clsChildY347,8254
-wrChildCXY358,8506
-flushA_F397,9611
-flushAll417,10021
-stdinByte_A431,10332
-getBinaryZ_FB453,10688
-byteNumBCX_CX469,11058
-binReadZ_FE525,12587
-prByteCEXY686,16842
-prCntCE709,17368
-prTellEZ728,17735
-prE734,17890
-binPrintEZ736,17959
-putTellBZ1002,25715
-tellBegZ_Z1010,25905
-tellEndAZ1017,26057
-unsync1064,27164
-rdHear_FE1081,27585
-symByteCX_FACX1094,27931
-symCharCX_FACX1115,28370
-bufStringE_SZ1148,29322
-pathStringE_SZ1178,29976
-doPath1251,31929
-charSymACX_CX1263,32199
-byteSymBCX_CX1298,33123
-currFdX_C1340,34239
-currFd_C1344,34351
-rdOpenEXY1361,34724
-wrOpenEXY1502,39130
-erOpenEXY1635,43305
-ctOpenEXY1677,44324
-getStdin_A1731,45738
-getParse_A1802,47578
-pushInFilesY1825,48048
-pushOutFilesY1849,48588
-pushErrFilesY1860,48883
-pushCtlFilesY1865,48987
-popInFiles1870,49091
-popOutFiles1921,50312
-popErrFiles1961,51337
-popCtlFiles1968,51540
-getChar_A1982,51931
-skipC_A2014,52802
-testEscA_F2057,53723
-anonymousX_FE2091,54476
-rdAtomBY_E2124,55339
-rdList_E2176,56766
-readA_E2314,60298
-readC_E2498,64615
-tokenCE_E2528,65206
-doRead2674,68743
-inReadyC_F2712,69583
-fdSetCL_X2724,69864
-fdRdSetCZL2736,70098
-fdWrSetCZL2743,70240
-rdSetCL_F2750,70389
-wrSetCL_F2755,70505
-rdSetRdyCL_F2760,70628
-waitFdCEX_A2782,71089
-doWait3184,84515
-doSync3222,85238
-doHear3262,86178
-doTell3294,86872
-fdSetC_Y3343,87960
-doPoll3354,88194
-doKey3410,89565
-doPeek3465,91004
-doChar3481,91282
-doSkip3535,92227
-doEol3549,92574
-doEof3558,92740
-doFrom3577,93097
-doTill3644,94766
-eolA_F3718,96715
-doLine3733,97019
-doLines3886,101059
-parseBCE_E3927,101960
-doAny3999,103615
-doSym4039,104553
-doStr4053,104812
-loadBEX_E4106,105938
-doLoad4202,108288
-doIn4225,108700
-doOut4245,109030
-doErr4265,109364
-doCtl4285,109699
-doPipe4306,110054
-doOpen4369,111600
-doClose4412,112580
-doEcho4443,113171
-putStdoutB4656,118695
-newline4699,119677
-space4703,119719
-outNumE4708,119783
-outWordA4715,119911
-prExtNmX4727,120149
-outOctA4735,120343
-outAoA4748,120611
-outStringS4760,120859
-outStringC4762,120929
-outNameE4772,121068
-prNameX4780,121185
-printE_E4790,121340
-printE4799,121476
-prinE_E5012,127092
-prinE5021,127228
-doPrin5076,128490
-doPrinl5090,128760
-doSpace5094,128828
-doPrint5116,129227
-doPrintsp5132,129522
-doPrintln5147,129811
-doFlush5152,129899
-doRewind5160,130036
-doExt5177,130426
-doRd5194,130765
-doPr5260,132545
-doWr5277,132877
+closeOutFileA164,3832
+waitFileC185,4301
+slowZ_F204,4701
+slowNbC_FA226,5168
+rdBytesCEX_F266,6116
+rdBytesNbCEX_F287,6580
+wrBytesCEX_F336,7874
+clsChildY366,8674
+wrChildCXY377,8926
+flushA_F416,10031
+flushAll436,10441
+stdinByte_A450,10752
+getBinaryZ_FB472,11108
+byteNumBCX_CX488,11478
+binReadZ_FE544,13007
+prByteCEXY705,17262
+prCntCE728,17788
+prTellEZ747,18155
+prE753,18310
+binPrintEZ755,18379
+putTellBZ1021,26135
+tellBegZ_Z1029,26325
+tellEndAZ1036,26477
+unsync1083,27584
+rdHear_FE1100,28005
+symByteCX_FACX1113,28351
+symCharCX_FACX1134,28790
+bufStringE_SZ1167,29742
+pathStringE_SZ1197,30396
+doPath1270,32349
+charSymACX_CX1282,32619
+byteSymBCX_CX1317,33543
+currFdX_C1359,34659
+currFd_C1363,34771
+rdOpenEXY1380,35144
+wrOpenEXY1521,39550
+erOpenEXY1654,43725
+ctOpenEXY1696,44744
+getStdin_A1750,46158
+getParse_A1821,47998
+pushInFilesY1844,48468
+pushOutFilesY1868,49008
+pushErrFilesY1879,49303
+pushCtlFilesY1884,49407
+popInFiles1889,49511
+popOutFiles1926,50395
+popErrFiles1952,51083
+popCtlFiles1959,51286
+getChar_A1973,51677
+skipC_A2005,52548
+testEscA_F2048,53469
+anonymousX_FE2082,54222
+rdAtomBY_E2115,55085
+rdList_E2167,56512
+readA_E2305,60044
+readC_E2489,64361
+tokenCE_E2519,64952
+doRead2665,68489
+inReadyC_F2703,69329
+fdSetCL_X2715,69610
+fdRdSetCZL2727,69844
+fdWrSetCZL2734,69986
+rdSetCL_F2741,70135
+wrSetCL_F2746,70251
+rdSetRdyCL_F2751,70374
+waitFdCEX_A2773,70835
+doWait3175,84261
+doSync3213,84984
+doHear3253,85924
+doTell3285,86618
+fdSetC_Y3334,87706
+doPoll3345,87940
+doKey3401,89311
+doPeek3456,90750
+doChar3472,91028
+doSkip3526,91973
+doEol3540,92320
+doEof3549,92486
+doFrom3568,92843
+doTill3635,94512
+eolA_F3709,96461
+doLine3724,96765
+doLines3877,100805
+parseBCE_E3918,101706
+doAny3990,103361
+doSym4030,104299
+doStr4044,104558
+loadBEX_E4097,105684
+doLoad4193,108034
+doIn4216,108446
+doOut4236,108776
+doErr4256,109110
+doCtl4276,109445
+doPipe4297,109800
+doOpen4360,111346
+doClose4403,112326
+doEcho4434,112917
+putStdoutB4647,118441
+newline4690,119423
+space4694,119465
+outNumE4699,119529
+outWordA4706,119657
+prExtNmX4718,119895
+outOctA4726,120089
+outAoA4739,120357
+outStringS4751,120605
+outStringC4753,120675
+outNameE4763,120814
+prNameX4771,120931
+printE_E4781,121086
+printE4790,121222
+prinE_E5003,126838
+prinE5012,126974
+doPrin5067,128236
+doPrinl5081,128506
+doSpace5085,128574
+doPrint5107,128973
+doPrintsp5123,129268
+doPrintln5138,129557
+doFlush5143,129645
+doRewind5151,129782
+doExt5168,130172
+doRd5185,130511
+doPr5251,132291
+doWr5268,132623
./apply.l,445
applyXYZ_E4,51
@@ -1039,7 +1040,7 @@ sys/x86-64.linux.defs.l,1959
consNumEA_E1024,23492
consNumEC_E1042,23868
-./flow.l,1632
+./flow.l,1658
redefMsgEC4,51
putSrcEC_E25,589
redefineCE109,3406
@@ -1107,24 +1108,25 @@ sys/x86-64.linux.defs.l,1959
doFinally2524,58583
doCo2548,59123
resumeCoroutine2573,59938
-doYield2722,65031
-cutLocalCX2843,68511
-joinLocalCX2856,68741
-doBreak2867,68923
-brkLoadE_E2875,69075
-doE2930,70675
-doTrace2969,71441
-traceCY3041,73356
-doCall3069,73844
-doTick3156,76036
-doIpid3188,77033
-doOpid3204,77321
-doKill3220,77616
-doFork3243,78051
-forkLispX_FE3256,78272
-doBye3417,82832
-byeE3429,83004
-finishE3441,83315
+doYield2726,65261
+cutLocalCX2847,68741
+joinLocalCX2860,68971
+closeCoFilesC2870,69134
+doBreak2884,69397
+brkLoadE_E2892,69549
+doE2947,71149
+doTrace2986,71915
+traceCY3058,73830
+doCall3086,74318
+doTick3173,76510
+doIpid3205,77507
+doOpid3221,77795
+doKill3237,78090
+doFork3260,78525
+forkLispX_FE3273,78746
+doBye3434,83306
+byeE3446,83478
+finishE3458,83789
./subr.l,2147
doCar5,71