From: hp@vmars.tuwien.ac.at (Peter Holzer)
Subject: Message passing problems
Organization: Technical University Vienna, Dept. for Realtime Systems, AUSTRIA
Date: Sun, 22 Nov 1992 16:59:55 GMT

Some time ago, I started to implement a different kind of message
passing in Minix: Messages are of arbitrary length and sent to/received
from ports instead of processes. Seemed quite easy, and after a couple
of hours it seemed to work: I could send and receive the new messages
from user processes. Seemed to work, because it does not work reliable.
If one process sends, and another receives in a loop, Minix will crash
after 20...100 iterations. I have looked at the code quite often now in
the last month, but I can't find the error, so I am posting the diffs,
and hope that somebody can tell me what I am doing wrong.

I have a 386 with Minix 1.6.16 and the `asynchronous' virtual consoles,
which has a tendency to crash during process table dumps (Ctrl-F1), so
it is possible that Minix does not really crash during message passing,
but somewhere else.

table
 !"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
begin 644 msg.sh
M(R$@+V)I;B]S: HC(%1H:7,@:7,@82!S:&5L;"!A<F-H:79E+B @4F5M;W9Ez
M(&%N>71H:6YG(&)E9F]R92!T:&ES(&QI;F4L('1H96X@=6YP86-K"B,@:70@y
M8GD@<V%V:6YG(&ET(&EN=&\@82!F:6QE(&%N9"!T>7!I;F<@(G-H(&9I;&4Bx
M+B @5&\@;W9E<G=R:71E(&5X:7-T:6YG"B,@9FEL97,L('1Y<&4@(G-H(&9Iw
M;&4@+6,B+B @66]U(&-A;B!A;'-O(&9E960@=&AI<R!A<R!S=&%N9&%R9"!Iv
M;G!U="!V:6$*(R!U;G-H87(L(&]R(&)Y('1Y<&EN9R B<V@@/&9I;&4B+"!Eu
M+F<N+B @268@=&AI<R!A<F-H:79E(&ES(&-O;7!L971E+"!Y;W4*(R!W:6QLt
M('-E92!T:&4@9F]L;&]W:6YG(&UE<W-A9V4@870@=&AE(&5N9#H*(PD)(D5Ns
M9"!O9B!S:&5L;"!A<F-H:79E+B(*(R!#;VYT96YT<SH@($UA:V5F:6QE(&UPr
M>#,X-BYX+F-D:68@<')O8RYC+F-D:68@<V5N9')E8RYS('-E;F1T97-T+F,*q
M(R!7<F%P<&5D(&)Y(&AP0'%U87-I+G9M87)S+G1U=VEE;BYA8RYA="!O;B!3p
M=6X@3F]V(#(R(#$W.C,V.C(X(#$Y.3(*4$%42#TO8FEN.B]U<W(O8FEN.B]Uo
M<W(O=6-B(#L@97AP;W)T(%!!5$@*:68@=&5S=" M9B G36%K969I;&4G("UAn
M("(D>S%](B A/2 B+6,B(#L@=&AE;B *("!E8VAO('-H87(Z(%=I;&P@;F]Tm
M(&-L;V)B97(@97AI<W1I;F<@9FEL92!<(B=-86ME9FEL92=<(@IE;'-E"F5Cl
M:&\@<VAA<CH@17AT<F%C=&EN9R!<(B=-86ME9FEL92=<(B!<*#,Y,"!C:&%Rk
M86-T97)S7"D*<V5D(")S+UY8+R\B(#XG36%K969I;&4G(#P\)T5.1%]/1E]&j
M24Q%)PI#0PD](&-C8PIA;&PZ('-E;F1T97-T(')E8W9T97-T"F-L96%N.@I8i
M"7)M('-E;F1T97-T(')E8W9T97-T("HN;R!C;W)E"E@*<V5N9'1E<W0Z('-Eh
M;F1T97-T+F\@<V5N9')E8RYO"E@))"A#0RD@+6\@<V5N9'1E<W0@<V5N9'1Eg
M<W0N;R!S96YD<F5C+F\*<F5C=G1E<W0Z(')E8W9T97-T+F\@<V5N9')E8RYOf
M"E@))"A#0RD@+6\@<F5C=G1E<W0@<F5C=G1E<W0N;R!S96YD<F5C+F\*<V5Ne
M9'1E<W0N;SH@<V5N9'1E<W0N8PI8"20H0T,I("UC("0H0T9,04=3*2 M1$]0d
M/7-E;F0S('-E;F1T97-T+F,*<F5C=G1E<W0N;SH@<V5N9'1E<W0N8PI8"20Hc
M0T,I("UC("0H0T9,04=3*2 M1$]0/7)E8V5I=F4S('-E;F1T97-T+F,@+6\@b
M<F5C=G1E<W0N;PI8"E@N8RYS.@I8"20H0T,I("U3("0H0T9,04=3*2 D/ I%a
M3D1?3T9?1DE,10II9B!T97-T(#,Y," M;F4@8'=C("UC(#PG36%K969I;&4Gz
M8#L@=&AE;@H@(" @96-H;R!S:&%R.B!<(B=-86ME9FEL92=<(B!U;G!A8VMEy
M9"!W:71H('=R;VYG('-I>F4A"F9I"B,@96YD(&]F("=-86ME9FEL92<*9FD*x
M:68@=&5S=" M9B G;7!X,S@V+G@N8V1I9B<@+6$@(B1[,7TB("$]("(M8R(@w
M.R!T:&5N( H@(&5C:&\@<VAA<CH@5VEL;"!N;W0@8VQO8F)E<B!E>&ES=&ENv
M9R!F:6QE(%PB)VUP>#,X-BYX+F-D:68G7"(*96QS90IE8VAO('-H87(Z($5Xu
M=')A8W1I;F<@7"(G;7!X,S@V+G@N8V1I9B=<(B!<*#$R-#8@8VAA<F%C=&5Rt
M<UPI"G-E9" B<R]>6"\O(B ^)VUP>#,X-BYX+F-D:68G(#P\)T5.1%]/1E]&s
M24Q%)PI8*BHJ(#$N,0DQ.3DR+S Q+S W(#(S.C(W.C,W"E@M+2T@;7!X,S@Vr
M+G@),3DY,B\P."\P,2 P,#HP,CHS. I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@q
M-#0Y+#0U-R J*BHJ"E@@( EP=7-H"65S"E@@( EP=7-H"69S"E@@( EP=7-Hp
M"6=S"E@A( EM;W8)9'@L<W,*6"$@"6UO=@ED<RQD> I8(2 );6]V"65S+&1Xo
M"E@@( EI;F-B"5]K7W)E96YT97(*6" @"6UO=@EE<VDL97-P"0E\(&%S<W5Mn
M97,@4%]35$%#2T)!4T4@/3T@, I8(" );6]V"65S<"PC:U]S=&MT;W *6"TMm
M+2 T-#DL-#4W("TM+2T*6" @"7!U<V@)97,*6" @"7!U<V@)9G,*6" @"7!Ul
M<V@)9W,*6"$@"6UO=@ES:2QS<PI8(2 );6]V"61S+'-I"E@A( EM;W8)97,Lk
M<VD*6" @"6EN8V()7VM?<F5E;G1E<@I8(" );6]V"65S:2QE<W )"7P@87-Sj
M=6UE<R!07U-404-+0D%312 ]/2 P"E@@( EM;W8)97-P+"-K7W-T:W1O< I8i
M*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@-#8Q+#0W," J*BHJ"E@@( D)"0E\(&5Nh
M9"!O9B!I;FQI;F4@<V%V90I8(" )<W1I"0D)?"!A;&QO=R!35TE40TA%4B!Tg
M;R!B92!I;G1E<G)U<'1E9 I8(" )"0D)?"!N;W<@<V5T('5P('!A<F%M971Ef
M<G,@9F]R('-Y<U]C86QL*"D*6" @"7!U<V@)96)X"0E\('!O:6YT97(@=&\@e
M=7-E<B!M97-S86=E"E@@( EP=7-H"65A> D)?"!S<F,O9&5S= I8(2 )<'5Sd
M: EE8W@)"7P@4T5.1"]214-%259%+T)/5$@*6"$@"6-A;&P)7W-Y<U]C86QLc
M"7P@<WES7V-A;&PH9G5N8W1I;VXL('-R8U]D97-T+"!M7W!T<BD*6" @"0D)b
M"7P@8V%L;&5R(&ES(&YO=R!E>'!L:6-I=&QY(&EN('!R;V-?<'1R"E@@( EMa
M;W8)14%84D5'*&5S:2DL96%X"7P@<WES7V-A;&P@35535"!04D5315)612!Sz
M:0I8(" )8VQI"E@M+2T@-#8Q+#0W,2 M+2TM"E@@( D)"0E\(&5N9"!O9B!Iy
M;FQI;F4@<V%V90I8(" )<W1I"0D)?"!A;&QO=R!35TE40TA%4B!T;R!B92!Ix
M;G1E<G)U<'1E9 I8(" )"0D)?"!N;W<@<V5T('5P('!A<F%M971E<G,@9F]Rw
M('-Y<U]C86QL*"D*6"L@"7!U<V@)961X"0E\('-I>F4@;V8@=7-E<B!M97-Sv
M86=E"E@@( EP=7-H"65B> D)?"!P;VEN=&5R('1O('5S97(@;65S<V%G90I8u
M(" )<'5S: EE87@)"7P@<W)C+V1E<W0*6"$@"7!U<V@)96-X"0E\(&9U;F-Tt
M:6]N"E@A( EC86QL"5]S>7-?8V%L; E\('-Y<U]C86QL*&9U;F-T:6]N+"!Ss
M<F-?9&5S="P@;5]P='(L('-I>F4I"E@@( D)"0E\(&-A;&QE<B!I<R!N;W<@r
M97AP;&EC:71L>2!I;B!P<F]C7W!T<@I8(" );6]V"45!6%)%1RAE<VDI+&5Aq
M> E\('-Y<U]C86QL($U54U0@4%)%4T525D4@<VD*6" @"6-L:0I%3D1?3T9?p
M1DE,10II9B!T97-T(#$R-#8@+6YE(&!W8R M8R \)VUP>#,X-BYX+F-D:68Go
M8#L@=&AE;@H@(" @96-H;R!S:&%R.B!<(B=M<'@S.#8N>"YC9&EF)UPB('5Nn
M<&%C:V5D('=I=&@@=W)O;F<@<VEZ92$*9FD*(R!E;F0@;V8@)VUP>#,X-BYXm
M+F-D:68G"F9I"FEF('1E<W0@+68@)W!R;V,N8RYC9&EF)R M82 B)'LQ?2(@l
M(3T@(BUC(B [('1H96X@"B @96-H;R!S:&%R.B!7:6QL(&YO="!C;&]B8F5Rk
M(&5X:7-T:6YG(&9I;&4@7"(G<')O8RYC+F-D:68G7"(*96QS90IE8VAO('-Hj
M87(Z($5X=')A8W1I;F<@7"(G<')O8RYC+F-D:68G7"(@7"@W-C8P(&-H87)Ai
M8W1E<G-<*0IS960@(G,O7E@O+R(@/B=P<F]C+F,N8V1I9B<@/#PG14Y$7T]&h
M7T9)3$4G"E@J*BH@,2XQ"3$Y.3(O,#$O,#<@,C,Z,C0Z-#D*6"TM+2!P<F]Cg
M+F,),3DY,B\Q,2\Q,R Q.#HR,SHP.0I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@f
M,3DL,C0@*BHJ*@I8+2TM(#$Y+#(X("TM+2T*6" @(VEN8VQU9&4@/&UI;FEXe
M+V-O;2YH/@I8(" C:6YC;'5D92 B<')O8RYH(@I8(" *6"L@(V1E9FEN92!$d
M14)51R P"E@K("-D969I;F4@4%))3E1&(&EF("A$14)51RD@<')I;G1F"E@Kc
M("-D969I;F4@34E.*&$L8BD)*"AA*2 \("AB*2 _("AA*2 Z("AB*2D*6"L@b
M"E@@(%!2259!5$4@=6YS:6=N960@8VAA<B!S=VET8VAI;F<["2\J(&YO;GIEa
M<F\@=&\@:6YH:6)I="!I;G1E<G)U<'0H*2 J+PI8(" *6" @1D]25T%21"!?z
M4%)/5$]465!%*"!I;G0@;6EN:5]S96YD+" H<W1R=6-T('!R;V,@*F-A;&QEy
M<E]P='(L(&EN="!D97-T+ I8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,3(Q+#$Sx
M," J*BHJ"E@@("\J/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]w
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]*@I8v
M(" @*@D)"0ES>7-?8V%L; D)"0D@(" @("H@"E@@(" J/3T]/3T]/3T]/3T]u
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]t
M/3T]/3T]/3T]/3T]/3T]/3T]*B\*6"$@4%5"3$E#(&EN="!S>7-?8V%L;"AFs
M=6YC=&EO;BP@<W)C7V1E<W0L(&U?<'1R*0I8("!I;G0@9G5N8W1I;VX["0D)r
M+RH@4T5.1"P@4D5#14E612P@;W(@0D]42" J+PI8("!I;G0@<W)C7V1E<W0[q
M"0D)+RH@<V]U<F-E('1O(')E8V5I=F4@9G)O;2!O<B!D97-T('1O('-E;F0@p
M=&\@*B\*6" @;65S<V%G92 J;5]P='(["0D)+RH@<&]I;G1E<B!T;R!M97-So
M86=E("HO"E@@('L*6" @+RH@5&AE(&]N;'D@<WES=&5M(&-A;&QS('1H870@n
M97AI<W0@:6X@34E.25@@87)E('-E;F1I;F<@86YD(')E8V5I=FEN9PI8(" @m
M*B!M97-S86=E<RX@(%1H97-E(&%R92!D;VYE(&)Y('1R87!P:6YG('1O('1Hl
M92!K97)N96P@=VET:"!A;B!)3E0@:6YS=')U8W1I;VXN"E@M+2T@,3(U+#$Sk
M-2 M+2TM"E@@("\J/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]j
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]*@I8i
M(" @*@D)"0ES>7-?8V%L; D)"0D@(" @("H@"E@@(" J/3T]/3T]/3T]/3T]h
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]g
M/3T]/3T]/3T]/3T]/3T]/3T]*B\*6"$@4%5"3$E#(&EN="!S>7-?8V%L;"AFf
M=6YC=&EO;BP@<W)C7V1E<W0L(&U?<'1R+"!M7W-I>F4I"E@@(&EN="!F=6YCe
M=&EO;CL)"0DO*B!314Y$+"!214-%259%+"!O<B!"3U1(("HO"E@@(&EN="!Sd
M<F-?9&5S=#L)"0DO*B!S;W5R8V4@=&\@<F5C96EV92!F<F]M(&]R(&1E<W0@c
M=&\@<V5N9"!T;R J+PI8("!M97-S86=E("IM7W!T<CL)"0DO*B!P;VEN=&5Rb
M('1O(&UE<W-A9V4@*B\*6"L@<VEZ95]T(&U?<VEZ93L)"0DO*B!S:7IE(&]Fa
M(&UE<W-A9V4@*B\*6" @>PI8(" O*B!4:&4@;VYL>2!S>7-T96T@8V%L;',@z
M=&AA="!E>&ES="!I;B!-24Y)6"!A<F4@<V5N9&EN9R!A;F0@<F5C96EV:6YGy
M"E@@(" J(&UE<W-A9V5S+B @5&AE<V4@87)E(&1O;F4@8GD@=')A<'!I;F<@x
M=&\@=&AE(&ME<FYE;"!W:71H(&%N($E.5"!I;G-T<G5C=&EO;BX*6"HJ*BHJw
M*BHJ*BHJ*BHJ*@I8*BHJ(#$S,BPQ,SD@*BHJ*@I8(" @*B H;W(@8F]T:"DNv
M(%1H92!C86QL97(@:7,@86QW87ES(&=I=F5N(&)Y('!R;V-?<'1R+@I8(" @u
M*B\*6" @"E@A(" @<F5G:7-T97(@<W1R=6-T('!R;V,@*G)P.PI8(2 @(&ENt
M="!N.PI8(" *6" @(" O*B!#:&5C:R!F;W(@8F%D('-Y<W1E;2!C86QL('!As
M<F%M971E<G,N("HO"E@@(" @:68@*"%I<V]K<W)C7V1E<W0H<W)C7V1E<W0Ir
M*2!R971U<FXH15]"041?4U)#*3L*6"TM+2 Q,S<L,C<R("TM+2T*6" @("H@q
M*&]R(&)O=&@I+B!4:&4@8V%L;&5R(&ES(&%L=V%Y<R!G:79E;B!B>2!P<F]Cp
M7W!T<BX*6" @("HO"E@@( I8(2 @(')E9VES=&5R('-T<G5C="!P<F]C"2IRo
M<#L*6"$@("!I;G0@"0D);CL*6"$@("!P:'ES7V)Y=&5S"0ES<F,L(&1S="P@n
M8VYT.PI8(2 *6"$@("!S=VET8V@@*&9U;F-T:6]N*2!["E@A(" @8V%S92!.m
M15=?4D5#14E613H*6"$@(" )4%))3E1&("@B;F5W7W)E8V5I=F4@*"5D+" El
M>"P@)60I7&XB+ I8(2 @( D)<W)C7V1E<W0L(&U?<'1R+"!M7W-I>F4I.PI8k
M(2 *6"$@(" )+RH@8VAE8VL@:68@82!M97-S86=E(&ES(&EN('1H92!Q=65Uj
M92!F;W(@=&AA="!P;W)T+@I8(2 @( D@*B!3:6YC92!T:&4@<75E=64@:7-Ni
M)W0@:6UP;&5M96YT960@>65T+"!J=7-T(&-H96-K(&EF(&%N>2 *6"$@(" )h
M("H@<')O8V5S<R!I<R!T<GEI;F<@=&\@<V5N9"!T;R!T:&%T('!O<G0*6"$@g
M(" )("HO"E@A(" @"69O<B H<G @/2!"14=?4%)/0U]!1$12.R!R<" \($5.f
M1%]04D]#7T%$1%([(')P("LK*2!["E@A(" @"0DC:68@, I8(2 @( D)4%))e
M3E1&("@B;F5W7W)E8V5I=F4Z(')P(#T@)7@L('!?9FQA9W,@/2 E>"P@<V5Nd
M9'1O(#T@)61<;B(L"E@A(" @"0D)<G L(')P+3YP7V9L86=S+"!R<"T^<%]Sc
M96YD=&\I.PI8(2 @( D)(V5N9&EF"E@A(" @"0EI9B H*')P+3YP7V9L86=Sb
M("8@*$Y%5U]#04Q,('P@4T5.1$E.1RDI(#T]("A.15=?0T%,3"!\(%-%3D1)a
M3D<I("8F"E@A(" @"0D@(" @<G M/G!?<V5N9'1O(#T]('-R8U]D97-T*2![z
M"E@A( I8(2 @( D)(" @( E04DE.5$8@*")N97=?<F5C96EV93H@<')O8V5Sy
M<R E9"!I<R!S96YD:6YG7&XB+ I8(2 @( D)(" @( D)<G @+2!"14=?4%)/x
M0U]!1$12*3L*6"$@(" )"2 @(" )4%))3E1&("@B;F5W7W)E8V5I=F4Z('!?w
M;65S<V)U9B ]("5X+"!P7VUE<W-S:7IE(#T@)61<;B(L( I8(2 @( D)(" @v
M( D)<G M/G!?;65S<V)U9BP@<G M/G!?;65S<W-I>F4I.PI8(2 @( D)(" @u
M( ES<F,@/2!U;6%P("AR<"P@1"P@*'9I<E]B>71E<RD@<G M/G!?;65S<V)Ut
M9BP@*'9I<E]B>71E<RD@<G M/G!?;65S<W-I>F4I.PI8(2 @( D)(" @( EDs
M<W0@/2!U;6%P("AP<F]C7W!T<BP@1"P@*'9I<E]B>71E<RD@;5]P='(L("AVr
M:7)?8GET97,I(&U?<VEZ92D["E@A(" @"0D@(" @"5!224Y41B H(FYE=U]Rq
M96-E:79E.B!S<F,@/2 E>"P@9'-T(#T@)7A<;B(L('-R8RP@9'-T*3L*6"$@p
M(" )"2 @(" ):68@*&1S=" ]/2 P*2!R971U<FX@15]"041?0E5&.PI8(2 @o
M( D)(" @( EI9B H<W)C(#T](# I('L*6"$@(" )"2 @(" )"2\J(%1H:7,@n
M:&%S(&%L<F5A9'D@8F5E;B!C:&5C:V5D(&EN('1H92 *6"$@(" )"2 @(" )m
M"2 J('-E;F0@8V%L;"P@<V\@:70@<VAO=6QD(&YO="!H87!P96XN"E@A(" @l
M"0D@(" @"0D@*B\*6"$@(" )"2 @(" )"7!A;FEC("@B<W1R86YG92!O;F=Ok
M:6YG<R!A="!S96YD97(@*&MI9&YA<'!E9"!B>2!M87)T:6%N<R _*2(L($Y/j
M7TY532D["E@A(" @"0D@(" @"7T*6"$@(" )"2 @(" )8VYT(#T@34E.("AMi
M7W-I>F4L(')P+3YP7VUE<W-S:7IE*3L*6"$@"E@A(" @"0D@(" @"7!H>7-?h
M8V]P>2 H<W)C+"!D<W0L(&-N="D["E@A( I8(2 @( D)(" @( DO*B!U;F)Lg
M;V-K('-E;F1E<B J+PI8(2 @( D)(" @( ER<"T^<%]F;&%G<R F/2!^("A3f
M14Y$24Y'('P@3D577T-!3$PI.PI8(2 @( D)(" @( EI9B H<G M/G!?9FQAe
M9W,@/3T@,"D@>PI8(2 @( D)(" @( D)<F5A9'D@*')P*3L*6"$@"0D)"5!2d
M24Y41B H(FYE=U]R96-E:79E.B E9"!U;F)L;V-K961<;B(L(')P("T@0D5'c
M7U!23T-?041$4BD["E@A( D)"7T@96QS92!["E@A( D)"0E04DE.5$8@*")Nb
M97=?<F5C96EV93H@)60@:&%S('-T:6QL(&9L86=S("5X('-E=%QN(BP*6"$@a
M"0D)"0ER<" M($)%1U]04D]#7T%$1%(L(')P+3YP7V9L86=S*3L*6"$@"0D)z
M?0I8(2 *6"$@(" )"2 @(" )<F5T=7)N(&-N=#L*6"$@(" )"7T*6"$@(" )y
M?0I8(2 @( E04DE.5$8@*")N97=?<F5C96EV93H@;F\@;65S<V%G92!I;B!Qx
M=65U95QN(BD["E@A( I8(2 @( DO*B!N;R!M97-S86=E(&EN('%U975E("TMw
M(&)L;V-K(&-A;&QE<@I8(2 @( D@*B\*6"$@"E@A( ER<" ]('!R;V-?<'1Rv
M.PDO*B!P<F]C7W!T<B!I<R!C;&]B8F5R960@8GD@=6YR96%D>2$@*B\*6"$@u
M"6EF("AR<"T^<%]F;&%G<R ]/2 P*2!U;G)E861Y*')P*3L*6"$@( ER<"T^t
M<%]G971F<F]M(#T@<W)C7V1E<W0["E@A( ER<"T^<%]M97-S8G5F(#T@;5]Ps
M='(["E@A( ER<"T^<%]M97-S<VEZ92 ](&U?<VEZ93L*6"$@( ER<"T^<%]Fr
M;&%G<R!\/2!214-%259)3D<@?"!.15=?0T%,3#L*6"$@(" )4%))3E1&("@Bq
M;F5W7W)E8V5I=F4Z(')E8V5I=F5R(&)L;V-K961<;B(I.PI8(2 *6"$@(" )p
M8G)E86L["E@A(" @8V%S92!.15=?4T5.1#H*6"$@(" )4%))3E1&("@B;F5Wo
M7W-E;F0@*"5D+" E>"P@)60I7&XB+ I8(2 @( D)<W)C7V1E<W0L(&U?<'1Rn
M+"!M7W-I>F4I.PI8(2 @( DO*B!C:&5C:R!I9B!A;GEO;F4@:7,@<F5C96EVm
M:6YG(&]N('1H870@<&]R=" J+PI8(2 @( EF;W(@*')P(#T@0D5'7U!23T-?l
M041$4CL@<G @/"!%3D1?4%)/0U]!1$12.R!R<" K*RD@>PI8(2 @( D):68@k
M*"AR<"T^<%]F;&%G<R F("A.15=?0T%,3"!\(%)%0T5)5DE.1RDI(#T]("A.j
M15=?0T%,3"!\(%)%0T5)5DE.1RD@)B8*6"$@(" )"2 @("!R<"T^<%]G971Fi
M<F]M(#T]('-R8U]D97-T*2!["E@A( I8(2 @( D)(" @( E04DE.5$8@*")Nh
M97=?<V5N9#H@<')O8V5S<R E9"!I<R!R96-E:79I;F=<;B(L"E@A(" @"0D@g
M(" @"0ER<" M($)%1U]04D]#7T%$1%(I.PI8(2 @( D)(" @( ES<F,@/2!Uf
M;6%P("AP<F]C7W!T<BP@1"P@*'9I<E]B>71E<RD@;5]P='(L("AV:7)?8GETe
M97,I(&U?<VEZ92D["E@A(" @"0D@(" @"6EF("AS<F,@/3T@,"D@<F5T=7)Nd
M($5?0D%$7T)51CL*6"$@(" )"2 @(" )8VYT(#T@34E.("AM7W-I>F4L(')Pc
M+3YP7VUE<W-S:7IE*3L*6"$@(" )"2 @(" )9'-T(#T@=6UA<" H<G L($0Lb
M("AV:7)?8GET97,I(')P+3YP7VUE<W-B=68L("AV:7)?8GET97,I(&-N="D[a
M"E@A(" @"0D@(" @"6EF("AD<W0@/3T@,"D@>PI8(2 @( D)(" @( D)+RH@z
M5&AI<R!H87,@86QR96%D>2!B965N(&-H96-K960@:6X@=&AE( I8(2 @( D)y
M(" @( D)("H@<F5C96EV92!C86QL+"!S;R!I="!S:&]U;&0@;F]T(&AA<'!Ex
M;BX*6"$@(" )"2 @(" )"2 J+PI8(2 @( D)(" @( D)<&%N:6,@*")S=')Aw
M;F=E(&]N9V]I;F=S(&%T(')E8V5I=F5R("AK:61N87!P960@8GD@;6%R=&EAv
M;G,@/RDB+"!.3U].54TI.PI8(2 @( D)(" @( E]"E@A( I8(2 @( D)(" @u
M( EP:'ES7V-O<'D@*'-R8RP@9'-T+"!C;G0I.PI8(2 *6"$@(" )"2 @(" )t
M+RH@=6YB;&]C:R!R96-E:79E<B J+PI8(2 @( D)(" @( ER<"T^<%]F;&%Gs
M<R F/2!^("A214-%259)3D<@?"!.15=?0T%,3"D["E@A(" @"0D@(" @"6EFr
M("AR<"T^<%]F;&%G<R ]/2 P*2!["E@A(" @"0D@(" @"0ER96%D>2 H<G Iq
M.PI8(2 )"0D)4%))3E1&("@B;F5W7W-E;F0Z("5D('5N8FQO8VME9%QN(BP@p
M<G @+2!"14=?4%)/0U]!1$12*3L*6"$@"0D)?2!E;'-E('L*6"$@"0D)"5!2o
M24Y41B H(FYE=U]S96YD.B E9"!H87,@<W1I;&P@9FQA9W,@)7@@<V5T7&XBn
M+ I8(2 )"0D)"7)P("T@0D5'7U!23T-?041$4BP@<G M/G!?9FQA9W,I.PI8m
M(2 )"0E]"E@A( I8(2 @( D)(" @( ER971U<FX@8VYT.PI8(2 @( D)?0I8l
M(2 @( E]"E@A(" @"5!224Y41B H(FYE=U]S96YD.B!N;V)O9'D@<F5C96EVk
M:6YG7&XB*3L*6"$@"E@A(" @"2\J(&YO8F]D>2!R96-E:79I;F<@+2T@<VAOj
M=6QD('!U="!M97-S86=E(&EN(%$@:&5R92!S;VUE('1I;64N"E@A(" @"2 Ji
M($EN('1H92!M96%N('1I;64@:G5S="!B;&]C:R!C86QL97(N"E@A(" @"2 Jh
M+PI8(2 *6"$@"7)P(#T@<')O8U]P='(["2\J('!R;V-?<'1R(&ES(&-L;V)Bg
M97)E9"!B>2!U;G)E861Y(2 J+PI8(2 ):68@*')P+3YP7V9L86=S(#T](# If
M('5N<F5A9'DH<G I.PI8(2 @"7)P+3YP7W-E;F1T;R ]('-R8U]D97-T.PI8e
M(2 )<G M/G!?;65S<V)U9B ](&U?<'1R.PI8(2 )<G M/G!?;65S<W-I>F4@d
M/2!M7W-I>F4["E@A(" )<G M/G!?9FQA9W,@?#T@4T5.1$E.1R!\($Y%5U]#c
M04Q,.PI8(2 @( E04DE.5$8@*")N97=?<V5N9#H@<V5N9&5R(&)L;V-K961<b
M;B(I.PI8(2 *6"$@(" )8G)E86L["E@A(" @8V%S92!.15=?4T5.1%)%0SH*a
M6"$@(" )<')I;G1F("@B;F5W7W-E;F1R96,@*"5D+" E>"P@)60I7&XB+ I8z
M(2 @( D)<W)C7V1E<W0L(&U?<'1R+"!M7W-I>F4I.PI8(2 @( EB<F5A:SL*y
M6"$@("!C87-E(%)%0T5)5D4Z"E@A(" @8V%S92!314Y$.@I8(2 @(&-A<V4@x
M0D]42#H*6"$@(" )8G)E86L["2\J(&AA;F1L960@8GD@;VQD(&-O9&4@8F5Lw
M;W<@*B\*6"$@("!D969A=6QT.@I8(2 )<')I;G1F("@B<W1R86YG92!S>7-Tv
M96T@8V%L;" E9" H)60L("5X+" E9"E<;B(L"E@A(" @"0EF=6YC=&EO;BP@u
M<W)C7V1E<W0L(&U?<'1R+"!M7W-I>F4I.PI8(2 @( EB<F5A:SL*6"$@("!]t
M"E@@( I8(" @("\J($-H96-K(&9O<B!B860@<WES=&5M(&-A;&P@<&%R86UEs
M=&5R<RX@*B\*6" @("!I9B H(6ES;VMS<F-?9&5S="AS<F-?9&5S="DI(')Er
M='5R;BA%7T)!1%]34D,I.PI8*BHJ*BHJ*BHJ*BHJ*BHJ"E@J*BH@,C T+#(Qq
M,2 J*BHJ"E@@( D)"6YE>'1?<'1R(#T@<')O8U]A9&1R*&YE>'1?<'1R+3YPp
M7W-E;F1T;RD["E@@( D)96QS90I8(" )"0EB<F5A:SL*6" @("!]"E@M(" @o
M?0I8(" *6" @(" O*B!#:&5C:R!T;R!S964@:68@)V1E<W0G(&ES(&)L;V-Kn
M960@=V%I=&EN9R!F;W(@=&AI<R!M97-S86=E+B J+PI8(" @(&EF("@@*&1Em
M<W1?<'1R+3YP7V9L86=S("8@*%)%0T5)5DE.1R!\(%-%3D1)3D<I*2 ]/2!2l
M14-%259)3D<@)B8*6"TM+2 S,S<L,S0T("TM+2T*6" @"0D);F5X=%]P='(@k
M/2!P<F]C7V%D9'(H;F5X=%]P='(M/G!?<V5N9'1O*3L*6" @"0EE;'-E"E@@j
M( D)"6)R96%K.PI8*R @( E]"E@@(" @?0I8(" *6" @(" O*B!#:&5C:R!Ti
M;R!S964@:68@)V1E<W0G(&ES(&)L;V-K960@=V%I=&EN9R!F;W(@=&AI<R!Mh
M97-S86=E+B J+PI8(" @(&EF("@@*&1E<W1?<'1R+3YP7V9L86=S("8@*%)%g
M0T5)5DE.1R!\(%-%3D1)3D<I*2 ]/2!214-%259)3D<@)B8*6"HJ*BHJ*BHJf
M*BHJ*BHJ*@I8*BHJ(#,T-RPS-3D@*BHJ*@I8(" ):68@*')D>5]H96%D6U1!e
M4TM?45T@(3T@3DE,7U!23T,I"E@@( D)+RH@061D('1O('1A:6P@;V8@;F]Nd
M96UP='D@<75E=64N("HO"E@@( D)<F1Y7W1A:6Q;5$%32U]172T^<%]N97ATc
M<F5A9'D@/2!R<#L*6"$@"65L<V4*6"$@>PI8(" C:68@*$-(25 @(3T@338Xb
M,# P*0I8(" )"7!R;V-?<'1R(#T)"2\J(')U;B!F<F5S:"!T87-K(&YE>'0@a
M*B\*6" @(V5N9&EF"E@@( D)<F1Y7VAE861;5$%32U]172 ](')P.PDO*B!Az
M9&0@=&\@96UP='D@<75E=64@*B\*6"$@?0I8(" )<F1Y7W1A:6Q;5$%32U]1y
M72 ](')P.PI8(" )<G M/G!?;F5X=')E861Y(#T@3DE,7U!23T,["2\J(&YEx
M=R!E;G1R>2!H87,@;F\@<W5C8V5S<V]R("HO"E@@( ER971U<FX["E@M+2T@w
M-#@P+#0Y,2 M+2TM"E@@( EI9B H<F1Y7VAE861;5$%32U]172 A/2!.24Q?v
M4%)/0RD*6" @"0DO*B!!9&0@=&\@=&%I;"!O9B!N;VYE;7!T>2!Q=65U92X@u
M*B\*6" @"0ER9'E?=&%I;%M405-+7U%=+3YP7VYE>'1R96%D>2 ](')P.PI8t
M(2 )96QS92!["E@@("-I9B H0TA)4" A/2!--C@P,# I"E@@( D)<')O8U]Ps
M='(@/0D)+RH@<G5N(&9R97-H('1A<VL@;F5X=" J+PI8(" C96YD:68*6" @r
M"0ER9'E?:&5A9%M405-+7U%=(#T@<G ["2\J(&%D9"!T;R!E;7!T>2!Q=65Uq
M92 J+PI8(2 )?0I8(" )<F1Y7W1A:6Q;5$%32U]172 ](')P.PI8(" )<G Mp
M/G!?;F5X=')E861Y(#T@3DE,7U!23T,["2\J(&YE=R!E;G1R>2!H87,@;F\@o
M<W5C8V5S<V]R("HO"E@@( ER971U<FX["D5.1%]/1E]&24Q%"FEF('1E<W0@n
M-S8V," M;F4@8'=C("UC(#PG<')O8RYC+F-D:68G8#L@=&AE;@H@(" @96-Hm
M;R!S:&%R.B!<(B=P<F]C+F,N8V1I9B=<(B!U;G!A8VME9"!W:71H('=R;VYGl
M('-I>F4A"F9I"B,@96YD(&]F("=P<F]C+F,N8V1I9B<*9FD*:68@=&5S=" Mk
M9B G<V5N9')E8RYS)R M82 B)'LQ?2(@(3T@(BUC(B [('1H96X@"B @96-Hj
M;R!S:&%R.B!7:6QL(&YO="!C;&]B8F5R(&5X:7-T:6YG(&9I;&4@7"(G<V5Ni
M9')E8RYS)UPB"F5L<V4*96-H;R!S:&%R.B!%>'1R86-T:6YG(%PB)W-E;F1Rh
M96,N<R=<(B!<*#$R,3@@8VAA<F%C=&5R<UPI"G-E9" B<R]>6"\O(B ^)W-Eg
M;F1R96,N<R<@/#PG14Y$7T]&7T9)3$4G"EA\('-E;F1R96,N<PI8?"!I;G0@f
M<V5N9#,H:6YT('-R8U]D97-T+"!M97-S86=E("IM7W!T<BD["EA\(&EN="!Re
M96-E:79E,RAI;G0@<W)C7V1E<W0L(&UE<W-A9V4@*FU?<'1R*3L*6'P@:6YTd
M('-E;F1R96,S*&EN="!S<F-?9&5S="P@;65S<V%G92 J;5]P='(I.PI8"EA\c
M(%1H97-E(&9U;F-T:6]N<R!P<F5S97)V92!A;&P@<F5G:7-T97)S(&5X8V5Pb
M="!E87@L(&5C>"P@961X(&%N9"!E9FQA9W,N"E@*6 DN9&5F:6YE(%]S96YDa
M,PI8"2YD969I;F4)7W)E8V5I=F4S"E@)+F1E9FEN90E?<V5N9')E8S,*6 I8z
M1DE24U1!4D=)3E)%1PD]"3 )"7P@;F]N>F5R;R!I9B!F:7)S="!A<F<@:7,@y
M:6X@96%X"E@*4T5.1#,)"3T)- I214-%259%,PD]"34*4T5.1%)%0S,)/0DVx
M"E-94S,X-E9%0PD]"3,S"E@*:68)1DE24U1!4D=)3E)%1PI8"4U?4%127T]&w
M1@D]"30K- I8"4U?4TE:15]/1D8)/0DT*S0K- IE;'-E"E@)4U)#7T1%4U1?v
M3T9&"3T)-"LT"E@)35]05%)?3T9&"3T)-"LT*S0*6 E-7U-)6D5?3T9&"3T)u
M-"LT*S0K- IE;F1I9@I8"E@)+G1E>'0*6 DN86QI9VX)- I87W-E;F0S.@I8t
M"7!U<V@)96)X"FEF"49)4E-405)'24Y214<@/2 P"E@);6]V"65A>"Q34D-?s
M1$535%]/1D9;97-P70E\('-R8U]D97-T"F5N9&EF"E@);6]V"65B>"Q-7U!4r
M4E]/1D9;97-P70E\(&U?<'1R"E@);6]V"65C>"PC4T5.1#,)"7P@<WES7V-Aq
M;&PH4T5.1"P@<W)C7V1E<W0L(&UE<W-A9V4I"E@);6]V"65D>"Q-7U-)6D5?p
M3T9&6V5S<%T*6 EI;G0)4UE3,S@V5D5#"0E\('1R87 @=&\@=&AE(&ME<FYEo
M; I8"7!O< EE8G@*6 ER970*6 I8"2YA;&EG;@DT"EA?<F5C96EV93,Z"E@)n
M<'5S: EE8G@*:68)1DE24U1!4D=)3E)%1R ](# *6 EM;W8)96%X+%-20U]$m
M15-47T]&1EME<W!="F5N9&EF"E@);6]V"65B>"Q-7U!44E]/1D9;97-P70I8l
M"6UO=@EE8W@L(U)%0T5)5D4S"0E\('-Y<U]C86QL*%)%0T5)5D4L('-R8U]Dk
M97-T+"!M97-S86=E*0I8"6UO=@EE9'@L35]325I%7T]&1EME<W!="E@):6YTj
M"5-94S,X-E9%0PI8"7!O< EE8G@*6 ER970*6 I8"2YA;&EG;@DT"EA?<V5Ni
M9')E8S,Z"E@)<'5S: EE8G@*:68)1DE24U1!4D=)3E)%1R ](# *6 EM;W8)h
M96%X+%-20U]$15-47T]&1EME<W!="F5N9&EF"E@);6]V"65B>"Q-7U!44E]/g
M1D9;97-P70I8"6UO=@EE8W@L(U-%3D1214,S"0E\('-Y<U]C86QL*%-%3D12f
M14,L('-R8U]D97-T+"!M97-S86=E*0I8"6UO=@EE9'@L35]325I%7T]&1EMEe
M<W!="E@):6YT"5-94S,X-E9%0PI8"7!O< EE8G@*6 ER970*14Y$7T]&7T9)d
M3$4*:68@=&5S=" Q,C$X("UN92!@=V,@+6,@/"=S96YD<F5C+G,G8#L@=&AEc
M;@H@(" @96-H;R!S:&%R.B!<(B=S96YD<F5C+G,G7"(@=6YP86-K960@=VETb
M:"!W<F]N9R!S:7IE(0IF:0HC(&5N9"!O9B G<V5N9')E8RYS)PIF:0II9B!Ta
M97-T("UF("=S96YD=&5S="YC)R M82 B)'LQ?2(@(3T@(BUC(B [('1H96X@z
M"B @96-H;R!S:&%R.B!7:6QL(&YO="!C;&]B8F5R(&5X:7-T:6YG(&9I;&4@y
M7"(G<V5N9'1E<W0N8R=<(@IE;'-E"F5C:&\@<VAA<CH@17AT<F%C=&EN9R!<x
M(B=S96YD=&5S="YC)UPB(%PH,3$R,2!C:&%R86-T97)S7"D*<V5D(")S+UY8w
M+R\B(#XG<V5N9'1E<W0N8R<@/#PG14Y$7T]&7T9)3$4G"E@C:6YC;'5D92 \v
M97)R;F\N:#X*6"-I;F-L=61E(#QS=&1I;RYH/@I8(VEN8VQU9&4@/'-T9&QIu
M8BYH/@I8(VEN8VQU9&4@/'-Y<R]T>7!E<RYH/@I8(VEN8VQU9&4@/'-Y<R]Tt
M:6UE<RYH/@I8"F-H87()*F-M;F0["E@*=F]I9"!U<V%G92 H=F]I9"D@>PI8s
M"69P<FEN=&8@*'-T9&5R<BP@(E5S86=E.B E<R!P;W)T('-I>F4@<F5P96%Tr
M7&XB+"!C;6YD*3L*6 EE>&ET("@Q*3L*6'T*6 I8"FEN="!M86EN("AI;G0@q
M87)G8RP@8VAA<B J*F%R9W8I('L*6 EC:&%R( D)*F)U9CL*6 EI;G0)"7!Op
M<G0L(')E<&5A=#L*6 ES:7IE7W0)"7-I>F4["E@)8VQO8VM?= D)=V-T,"P@o
M=V-T,3L*6 ES=')U8W0@=&US"71M<V)U9C L('1M<V)U9C$["E@):6YT"0EIn
M.PI8"6EN= D)<F,["E@*6 EC;6YD(#T@*&-M;F0@/2!S=')R8VAR("AA<F=Vm
M(%LP72P@)R\G*2D@/R!C;6YD("LK(#H@87)G=B!;,%T["E@):68@*&%R9V,@l
M(3T@-"D@=7-A9V4@*"D["E@)<&]R=" ](&%T;VD@*&%R9W8@6S%=*3L*6 ESk
M:7IE(#T@871O:2 H87)G=B!;,ETI.PI8"7)E<&5A=" ](&%T;VD@*&%R9W8@j
M6S-=*3L*6 I8"6EF("@H8G5F(#T@;6%L;&]C("AS:7IE*2D@/3T@3E5,3"D@i
M>PI8"0EF<')I;G1F("AS=&1E<G(L(")O=70@;V8@;65M;W)Y7&XB*3L*6 D)h
M97AI=" H,2D["E@)?0I8"E@)(VEF(# *6 EW8W0P(#T@=&EM97,@*"9T;7-Bg
M=68P*3L*6 DC96YD:68*6 EF;W(@*&D@/2 P.R!I(#P@<F5P96%T.R!I("LKf
M*2!["E@)"7!R:6YT9B H(B5D7&XB+"!I*3L*6 D):68@*"AR8R ]($]0("APe
M;W)T+"!B=68L('-I>F4I*2 A/2!S:7IE*2!["E@)"0DC:68@, I8"0D)9G!Rd
M:6YT9B H(FD@/2 E9"P@<F,@/2 E9"P@97)R;F\@/2 E9%QN(BP*6 D)"0D@c
M:2P@<F,L(&5R<FYO*3L*6 D)"65X:70@*#$I.PI8"0D)(V5N9&EF"E@)"7T*b
M6 E]"E@)(VEF(# *6 EW8W0Q(#T@=&EM97,@*"9T;7-B=68Q*3L*6 EP<FENa
M=&8@*")W86QL(&-L;V-K('1I;64Z("5D7&XB+"!W8W0Q("T@=V-T,"D["E@)z
M<')I;G1F("@B=7-E<B!T:6UE.B @(" @(" E9%QN(BP@=&US8G5F,2YT;7-?y
M=71I;64@+2!T;7-B=68P+G1M<U]U=&EM92D["E@)<')I;G1F("@B<WES=&5Mx
M('1I;64Z(" @(" E9%QN(BP@=&US8G5F,2YT;7-?<W1I;64@+2!T;7-B=68Pw
M+G1M<U]S=&EM92D["E@)(V5N9&EF"E@)<F5T=7)N(# ["EA]"D5.1%]/1E]&v
M24Q%"FEF('1E<W0@,3$R,2 M;F4@8'=C("UC(#PG<V5N9'1E<W0N8R=@.R!Tu
M:&5N"B @("!E8VAO('-H87(Z(%PB)W-E;F1T97-T+F,G7"(@=6YP86-K960@t
M=VET:"!W<F]N9R!S:7IE(0IF:0HC(&5N9"!O9B G<V5N9'1E<W0N8R<*9FD*s
H96-H;R!S:&%R.B!%;F0@;V8@<VAE;&P@87)C:&EV92X*97AI=" P"B<*r
 q
end
-- 
|    _  | Peter J. Holzer                       | Think of it   |
| |_|_) | Technical University Vienna           | as evolution  |
| | |   | Dept. for Real-Time Systems           | in action!    |
| __/   | hp@vmars.tuwien.ac.at                 |     Tony Rand |
Newsgroups: comp.os.minix