+++ /dev/null
-grasp:401:andre,andy,ap,areid,cvh,dm,dnt,gnik,grasp,hwloidl,jan,johan,jonathan,jtod,kh,laszlo,mattson,partain,sansom,satnam,sewardj,sharpkm,simonm,simonpj,sof,trinder,wadler,
-staff:9:aileen,alexa,ali,alison,andy,anne,ansftp,aran,arthur,audit,bill,botech,bw,carol,carron,cathy,conftp,cs2head,cvh,dam,darryn,daw,dcg,debbie,del,deptlib,dkm,dlg,dm,dnt,ellen,f131mgr,fabio,fairouz,faxback,fido,finance,fiona,footsie,george,gilbert,gilles,gsm,handbook,harrismi,helen,hme,hmg,huw,iain,id,igr,iii,imis-doc,imm,inei,infoman,ingres,inventdb,irfest,isabel,jacksonn,jacqui,james,janice,jej,jim,jl,jmm,johnson,jon,jstack,jtod,jwp,keith,kempj,kh,kieran,kimb,kirsten,kmssys,laurent,lewis,lisa,lizbeth,logiej,love,lyons,maclib,macneisd,margaret,mark,mary,mattson,meurig,mjj,mmi,monica,mossin,mpa,muffy,nk,norman,partain,pd,pdg,pete,pp,ps,quintin,rab,ray,rdm,reh,replib,rff,rffingres,rich,rios,rjw,rn,ron,ruffin,rwi,sanderso,sandy,sansom,satnam,sheila,sid,simonm,simonpj,slurry,softlib,stephen,steve,stevem,stuart,support,susan,tania,tech,teresa,tfm,tommyk,tracy,trinder,types,typesftp,wadler,wf,xadmin,
-grasp:401:andre,andy,ap,areid,cvh,dm,dnt,gnik,grasp,hwloidl,jan,johan,jonathan,jtod,kh,laszlo,mattson,partain,sansom,satnam,sewardj,sharpkm,simonm,simonpj,sof,trinder,wadler,
-staff:9:aileen,alexa,ali,alison,andy,anne,ansftp,aran,arthur,audit,bill,botech,bw,carol,carron,cathy,conftp,cs2head,cvh,dam,darryn,daw,dcg,debbie,del,deptlib,dkm,dlg,dm,dnt,ellen,f131mgr,fabio,fairouz,faxback,fido,finance,fiona,footsie,george,gilbert,gilles,gsm,handbook,harrismi,helen,hme,hmg,huw,iain,id,igr,iii,imis-doc,imm,inei,infoman,ingres,inventdb,irfest,isabel,jacksonn,jacqui,james,janice,jej,jim,jl,jmm,johnson,jon,jstack,jtod,jwp,keith,kempj,kh,kieran,kimb,kirsten,kmssys,laurent,lewis,lisa,lizbeth,logiej,love,lyons,maclib,macneisd,margaret,mark,mary,mattson,meurig,mjj,mmi,monica,mossin,mpa,muffy,nk,norman,partain,pd,pdg,pete,pp,ps,quintin,rab,ray,rdm,reh,replib,rff,rffingres,rich,rios,rjw,rn,ron,ruffin,rwi,sanderso,sandy,sansom,satnam,sheila,sid,simonm,simonpj,slurry,softlib,stephen,steve,stevem,stuart,support,susan,tania,tech,teresa,tfm,tommyk,tracy,trinder,types,typesftp,wadler,wf,xadmin,
+++ /dev/null
-import Posix
-import IO -- 1.3
-
-main =
- createFile "po012.out" stdFileMode >>= \ fd ->
- installHandler processStatusChanged (Catch (reap1 fd)) Nothing >>
- ls >>
- awaitSignal Nothing
-
-ls =
- runProcess "ls" ["-l"] Nothing Nothing Nothing Nothing Nothing
-
-reap1 fd =
- hPutStrLn stderr "Reaper1" >>
- getAnyProcessStatus True False >>
- installHandler processStatusChanged (Catch (reap2 fd)) Nothing >>
- fdWrite fd (take 666 (repeat 'x')) >>
- ls >>
- awaitSignal Nothing
-
-reap2 fd =
- hPutStrLn stderr "Reaper2" >>
- getAnyProcessStatus True False >>
- installHandler processStatusChanged (Catch (reap3 fd)) Nothing >>
- setFileMode "po012.out"
- (foldr1 unionFileModes [ownerReadMode,ownerWriteMode,groupReadMode,otherReadMode]) >>
- ls >>
- awaitSignal Nothing
-
-reap3 fd =
- hPutStrLn stderr "Reaper3" >>
- getAnyProcessStatus True False >>
- installHandler processStatusChanged (Catch (reap4 fd)) Nothing >>
- setFileTimes "po012.out" 0 0 >>
- ls >>
- awaitSignal Nothing
-
-reap4 fd =
- hPutStrLn stderr "Reaper4" >>
- getAnyProcessStatus True False >>
- installHandler processStatusChanged (Catch (reap5 fd)) Nothing >>
- --removeLink "po012.out" >>
- ls >>
- awaitSignal Nothing
-
-reap5 fd =
- hPutStrLn stderr "Reaper5" >>
- getAnyProcessStatus True False >>
- fdSeek fd SeekFromEnd 0 >>= \ bytes ->
- if bytes == 666 then
- fdSeek fd AbsoluteSeek 0 >>
- hPutStrLn stderr "Reaper5" >>
- fdRead fd 666 >>= \ (str, _) ->
- if str == (take 666 (repeat 'x')) then
- putStr "Okay\n"
- else
- putStr "Read failed\n"
- else
- putStr "Seek returned wrong size\n"