home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / programmer / 6741 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  5.8 KB

  1. From: zodiac@darkness.gun.de (Ralph Seichter)
  2. Subject: Async I/O problem, can you help?
  3. Date: Mon, 1 Apr 96 20:16:00 CET
  4. Message-ID: <zpaf43aCY70MZ1@da23.darkness.gun.de>
  5. X-ZC-PGP-KEY-AVAIL: 
  6. Path: tim.xenologics.com!darkness.gun.de
  7. X-ZC-Telefon: V+49-2667-969000
  8. X-Newsreader: Zodiac's Point 37.212 [REGISTERED 0001] via Connectline-CLMSortin 2.27
  9. Newsgroups: comp.sys.amiga.programmer
  10. X-Gateway: ZConnect DA darkness.gun.de [Connectline/AmigaOS]
  11.  
  12. I have written a small program to experiment with async I/O operations,
  13. which first opens the serial device (or the "duart.device" in my case),
  14. then spawns a child process to handle the device input, and finally sends
  15. a string to my modem so I get data transmitted back.
  16.  
  17. The problem I experience is that the following statements don't do what
  18. should (see "device.c/handleDeviceInput"):
  19.  
  20.    while (!(signals & SIGBREAKF_CTRL_C))
  21.    {
  22.        if (!sdi.pending)
  23.            startRead(&serInput, 1);
  24.  
  25.        Printf("Waiting for signals\n");
  26.        signals = Wait(sdi.sigRead | SIGBREAKF_CTRL_C);
  27.  
  28.        if (signals & sdi.sigRead)
  29.        {
  30.            Printf("Got device signal\n");
  31.            if (CheckIO((struct IORequest *)sdi.ior))
  32.            {
  33.                sdi.pending = FALSE;
  34.                Printf("Device input '%lc'\n", serInput);
  35.            }
  36.        }
  37.    }
  38.    stopRead();
  39.  
  40. SendIO() sends a read request, then I wait for Ctrl-C and the message
  41. port's signal bit. But the latter never arrives! If I use 'Scout' to send
  42. the proper signal manually, CheckIO() finds the read request complete and
  43. the correct byte is printed. The very same code segment works just fine if
  44. I don't spawn it as a child process.
  45.  
  46. I include the sources so you can see what 'sdi' etc. is all about. Thanks
  47. for every hint.
  48.  
  49.     -Ralph
  50.  
  51.  
  52. begin 644 AsyncIO.lzx
  53. M3%I8``P`"@0```<`]0`````````*`@$```H```FU/<#:3J?M^M&.YA!!<WEN,
  54. M8TE/+V-O;6UO;BYH#P"3``````````H"`0``"@``";4]=?OUBIT\#:JM%$%SQ
  55. M>6YC24\O<')O=&\O;6%I;BYH#P#H````=`$```H"`0``"@``";4]=/3:=4O6%
  56. MK(`R%D%S>6YC24\O<')O=&\O9&5V:6-E+F@0`A.```"H`)F1@`)X*O=$EP%@P
  57. M"M!*HKS0#R-CTP5;23ASD`^[I:#J96Z-6_(2__\0_P``8```4@``=C3O))U"Q
  58. MP.KY]])*"08"U>C=$*TU?M/",TM%-*1;VKG_OX520..$2$QN4=LK8]QPF88L^
  59. MR2ZDV'FP5OX='`KEQ],EQK8B<5PR+WY3"MG'Q"`*SB`\JQC,RSV2W.);"=AF_
  60. MVE4W@O0N7_K^NT*23!J";3P:3J'4*J]QHT,8-HPQ\9$W>>TI@4`+DO0Y/LF"U
  61. M2=SX-HI/J45(+,@Y+UN"96C]5:P^W(TY3T)FH)Y![G_W9<X#`V&ERE`*S`TE!
  62. M+"Q"#JN2",]U>'!"46IX2\'+X7#A+]'9IE)V(],T\#-%H":3.#,;K]^G;#?<#
  63. M@DO`_UA7[$HG-?#\G[5,GN"WJG47:8A^7?S5L@,97$K\/8Q>.JMD&DG3=]88<
  64. M.N$(_'%4KPKYIPTGH,`L%JW_Q87D[WC[),0?SU"[I18M70`````'```)````%
  65. M````"@(!```*```)M3W`LAJ>J-?Z[E,007-Y;F-)3R]D979I8V4N8P<`K```_
  66. M```````*`@$```H```FU/;NBO0?8R;IDH`U!<WEN8TE/+V=S="YC!P#`!0``/
  67. M!`8```H"`0``"@``";4]NXBXF)<)`7'K#D%S>6YC24\O;6%I;BYC>`(;8```J
  68. M&:@IF0``^RO;2+H#SJ<-@;H5<3I0XJC@UMUR>E6[`6V*1XTT`O5^4W>;*2_A"
  69. M)/?]D=\``(G``4P``!V0K_'6JUZS*[5%!+;F>M;'5F/XF;3S,_Z42;3PU*28,
  70. M2]JQ:S)KL6J[)G3&,=.\YY$FS*3178815J"%>/R'Z"N@!_@W^+G?_:>`S`"28
  71. M$R#%EPDJ:U(LMX%NZ%W@>+R'H>!9O&%[P/%OA_S@&+HH"UUZ^(C[@>8/`MY)<
  72. MF:5>JH27I<"&6IEAM45R+D!UPI*RP,FAONV%5'`DN30DDFJT44"I*!D5`[8!"
  73. M2D#KPP6J"%J)I@X::.7D!)$L<7ZD9IH(=6$*3J=`Q?B0''H.AZ`HT`\+8VY2/
  74. M`W6MI%:`Y_6]'B2:&-(H,985EFDFO%U!0:D_S<?.\H)*HL8A58/TKR<`_<0PF
  75. M@?G/XDA'^7"Z^.:!"MWE7*`2%(_N8C;!\(@ZFG`=R\!NH-#TM"01\]$!>]6D8
  76. MH,1<DKU_4&$"4O1.RPI;#&N.`36O#6^G?M0EU.ORI;I`5OJ5I$Y$&TCX]E!+@
  77. MBZVVASDM8"&[#0($:A@RGWW/>HXFPIU!,O)JRZ.($5*0BP-3#$&.;UN>V%]*S
  78. MAR>8#G$#8YV)4CE8C]_)&CRG='G^@OQP-AE]9BZRU4`$+?UO2F2VQ?V(^0".Z
  79. M33YFPY57:>H.%/"_B@RU0_N4Y7>E4F-ZF.@BN$!S<29FJ93M&P-&"!HJ8FFOO
  80. MEIG+T4:DG4]81'!Q@Q<GBM%B#$05)+BL6$%#$H=`#6;=KD.3LMBMN\>#SB&96
  81. M/$Z*;C'U,$?,(8X-')KC*".-W8)O/<*4!I[F))MS=L4':LP1LXY.?O'WKI,PD
  82. M[;_T_UKVS-5UFAV?^/H"[]KFQXC0R5:WA_^%K;+JY9](!E7\'1MLORHG[16#C
  83. MKP<OUOK>F_!X+`CP24$`4T=*],-'=_!NI.(#3X<W4DH.`P"W_N<!@30W:A0:?
  84. MW5^ZE<KAD)A]X+=CZSA?UVFI9=8I&6'+@1+FV@^H$M6[3(\.#OY#,D`288'.!
  85. M^^G40#4R`5J:A[[Z@U&2WBO>47TM)N0[(N=M@(V.HC:EM(O4%V3,04(HRSRQK
  86. MIAS"Z=LR<Y&/DL%\XOIAHP7WS1H$)MKQ57BQ)&:E2<&:%.-9I?R^3"=OXD2C_
  87. MQ$R)IELU:F8=J/28H^('*$(IL/[@S*!B)IEAIZ6;19W.QB#GO)V]`W4O;T1!@
  88. MS1W5Q*N4S?-5:H%O.YB:EL.N(WFVCM&:6!DE=<.Y_`ZTC+.NC27'GA9#MA[N4
  89. M05G*Y/TV'_E;V_"=(QQT`6[76N0`5__S5S_7Z/?7V[A7CQ[EH&E4?_O4B27V$
  90. M^C+'.%&#.V*V%K`\JAZU19=ETF'O0H/_\COL#"9>:A;<#\1"W*5[X95&X(+#O
  91. M-_MFTY8I<`AOL&YRM+68HH;_F2:J(M)4UA7PR$A25ILF3=F!4GC,HS:?9=U=B
  92. M08A+*2/A#X]"SJUA4<H&G,!0\4GCP-K6R28W9]['4?NI@Y(*B=RDSSC^19D)2
  93. MCKT9JVO4MZ*VTC_5TD7\M.-SN20!Y_$>3IS^%.6B^CZVXWZJ1TN>IX8M&H0/G
  94. M=@5SU6&P']Z.FVC6S;E%E`DK=(M.4]@T3-LA,?A'W'C*'Y]Z"I?FRV)ZWL[B!
  95. M2$8<EVRK`)\.9R;\T-J_B[FY1DE87BQEZ/,\SQF&`GCQ8>]2/'BWT00FSPJ$?
  96. M4WY$3WCBY%F#*YA"6M\-)C7$;(JK9_\[\^PB_=S*4=>,)K1$+VX\SIG;VRF*)
  97. M1O=!3\.+R`Z?IV#WI>B:/FV(_<%+EBMI.M"_[?M]P`8:%NR%;L`L/M:`#QG:@
  98. M/$XV]_Z\*^][C^FMJ6D`GZ]8B>'KY,%R<[/[BM8.YDP`NNE7FYY`!WS>\W-X"
  99. MWE`$<$?#_SL).)2ZF\YQOTR?L./E,K.F9LQ*WC[E&J&>0\['(@]VHVFS?<?FZ
  100. M/PR/\)\\9SZ+AY!;R9QGSB)05,(F&_\VTJ48JD65@,40;DF-':%<1.CYU)!^L
  101. MY;SMG8GW!B7<O1\=`>=WIG,F,R96W7);>?"59(?D7I4Z="A,C#T8TGX[ER1H3
  102. M``$```\`$`(````````*`@$```H```FU/;N2Z>0F.I[S?!%!<WEN8TE/+U--Q
  103. M04M%1DE,10\`Y@`````````*`@$```H```FU/;H%#E=J=+QO=A%!<WEN8TE/"
  104. M+U-#3U!424].4P<`J@```$8"```*`@$```H```FU.7,_P8#^<$*?W`]!<WEN`
  105. M8TE/+T-04DE.2508`A4```";`*$9@`/X*_X3X!XKX!70%K+"2ND7JI)77J=3K
  106. M:>)"TMR@V\Y,O(;OIKM)I'_>'?\``@``"F0```B@V'[O9-E9BW^);=O^*1=`4
  107. MNW6EZH29:9!.W1+I8*$2=#O]_TO7N*P3B8&CP:S)'1"\Y)H3L:^3JU,'=T(:Z
  108. M&OO0>0J25UGC*`6W=>--!40<N'$#_Z2&[5*<6TEICDO]NFE*N;4*(_`.,=WY;
  109. M1]6P&,`A3@]DWVT\Q!=:1SIS<_'P`.=/3C3SPV;QWHAJLJFR5`.>D[QC3'^/N
  110. M5Y"-,46'@9UA<2>+36Z*%F!FO?S'*\W@T\,TPE4^I"_/Z?R+GOT<X[S@D/_02
  111. MPTS/HVH5_#?A?,C]J7_C8#"G!=S2,_EP7L_-T8C_S=:N"R>[V<NG#7Z173"B,
  112. MC<<F5^HZ_5MP20)F4=#C%3&F\T:2@SCVV+B;3K(-LM)_0T_!(LE1.+C:__3L-
  113. MS$0,;%9PM6."B-+3<7LC$$+$DI9R19PL[!.!6K9(.$P"P!(<<3'&7EZ>WNI6-
  114. M7B=CY'`OU/P$Q=<L(3WAAPCZ87FEL(3G>0'H-I"-6>O>"1:)`+PW(Y(,U=7@F
  115. ME+)5;$+@BQR3:2=-!+0__RU,+=LLC<?-+WN.U*-.)G&,N-"JH9M>EDOTPW(4.
  116. M&*(I":"TV(5:H+DH7&N^B5-&H--K-D;:1[.NBA54T^]1W6$E=`BR@)5=`VRRE
  117. M35:<ZFBSD0:-NGV=+A1<NAEP>VJ,(';/]\5Y6O5_)9V-/LY4Y05FCW<\1U_9V
  118. (Z--%\@````"-_
  119. ``
  120. end
  121. size 2933
  122.