From 6d007ff637ce790f6012d4c1d15bc0c04bff8e5a Mon Sep 17 00:00:00 2001 From: Sebastian Brosch Date: Sun, 13 Oct 2024 00:43:15 +0200 Subject: [PATCH] solution for race condition --- VL03-01-01/build.gradle | 27 +++ VL03-01-01/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 52141 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + VL03-01-01/gradlew | 164 ++++++++++++++++++ VL03-01-01/gradlew.bat | 90 ++++++++++ VL03-01-01/libs/processemu-javadoc.jar | Bin 0 -> 24240 bytes VL03-01-01/libs/processemu.jar | Bin 0 -> 3788 bytes .../main/java/de/dhbw/parprog/CalcTask.java | 24 +++ .../main/java/de/dhbw/parprog/JavaPipe.java | 43 +++++ 9 files changed, 354 insertions(+) create mode 100644 VL03-01-01/build.gradle create mode 100644 VL03-01-01/gradle/wrapper/gradle-wrapper.jar create mode 100644 VL03-01-01/gradle/wrapper/gradle-wrapper.properties create mode 100644 VL03-01-01/gradlew create mode 100644 VL03-01-01/gradlew.bat create mode 100644 VL03-01-01/libs/processemu-javadoc.jar create mode 100644 VL03-01-01/libs/processemu.jar create mode 100644 VL03-01-01/src/main/java/de/dhbw/parprog/CalcTask.java create mode 100644 VL03-01-01/src/main/java/de/dhbw/parprog/JavaPipe.java diff --git a/VL03-01-01/build.gradle b/VL03-01-01/build.gradle new file mode 100644 index 0000000..5f1d569 --- /dev/null +++ b/VL03-01-01/build.gradle @@ -0,0 +1,27 @@ +apply plugin: 'java' +apply plugin: 'application' + +apply plugin: 'eclipse' +// Run 'gradlew eclipse' for the eclipse project + +apply plugin: 'idea' +// Run 'gradle idea' for the IntelliJ idea project (no longer necessary in idea 13) + +// Netbeans: See http://plugins.netbeans.org/plugin/44510/gradle-support + + +mainClassName = "de.dhbw.parprog.JavaPipe" + +repositories { + mavenCentral() + flatDir { + dir 'libs' + } +} + + +dependencies { + implementation 'commons-lang:commons-lang:2.6' + implementation name: 'processemu' +} + diff --git a/VL03-01-01/gradle/wrapper/gradle-wrapper.jar b/VL03-01-01/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..085a1cdc27db1185342f15a00441734e74fe3735 GIT binary patch literal 52141 zcmafaW0a=B^559DjdyI@wy|T|wr$(CJv+9!W822gY&N+!|K#4>Bz;ajPk*RBjZ;RV75EK-U36r8Y(BB5~-#>pF^k0$_Qx&35mhPenc zNjoahrs}{XFFPtR8Xs)MImdo3(FfIbReeZ6|xbrftHf0>dl5l+$$VLbG+m|;Uk##see6$CK4I^ ziDe}0)5eiLr!R5hk6u9aKT36^C>3`nJ0l07RQ1h438axccsJk z{kKyd*$G`m`zrtre~(!7|FcIGPiGfXTSX`PzlY^wY3ls9=iw>j>SAGP=VEDW=wk2m zk3%R`v9(7LLh{1^gpVy8R2tN#ZmfE#9!J?P7~nw1MnW^mRmsT;*cyVG*SVY6CqC3a zMccC8L%tQqGz+E@0i)gy&0g_7PV@3~zaE~h-2zQ|SdqjALBoQBT2pPYH^#-Hv8!mV z-r%F^bXb!hjQwm2^oEuNkVelqJLf029>h5N1XzEvYb=HA`@uO_*rgQZG`tKgMrKh~aq~ z6oX{k?;tz&tW3rPe+`Q8F5(m5dJHyv`VX0of2nf;*UaVsiMR!)TjB`jnN2)6z~3CK@xZ_0x>|31=5G$w!HcYiYRDdK3mtO1GgiFavDsn&1zs zF|lz}sx*wA(IJoVYnkC+jmhbirgPO_Y1{luB>!3Jr2eOB{X?e2Vh8>z7F^h$>GKmb z?mzET;(r({HD^;NNqbvUS$lhHSBHOWI#xwT0Y?b!TRic{ z>a%hUpta3P2TbRe_O;s5@KjZ#Dijg4f=MWJ9euZnmd$UCUNS4I#WDUT2{yhVWt#Ee z?upJB_de&7>FHYm0Y4DU!Kxso=?RabJ*qsZ2r4K8J#pQ)NF?zFqW#XG1fX6dFC}qh z3%NlVXc@Re3vkXi*-&m)~SYS?OA8J?ygD3?N}Pq zrt_G*8B7^(uS7$OrAFL5LvQdQE2o40(6v`se%21Njk4FoLV-L0BN%%w40%k6Z1ydO zb@T(MiW@?G-j^j5Ypl@!r`Vw&lkJtR3B#%N~=C z@>#A{z8xFL=2)?mzv;5#+HAFR7$3BMS-F=U<&^217zGkGFFvNktqX z3z79GH^!htJe$D-`^(+kG*);7qocnfnPr^ieTpx&P;Z$+{aC8@h<0DDPkVx`_J~J> zdvwQxbiM1B{J6_V?~PNusoB5B88S%q#$F@Fxs4&l==UW@>9w2iU?9qMOgQWCl@7C* zsbi$wiEQEnaum!v49B_|^IjgM-TqMW!vBhhvP?oB!Ll4o-j?u3JLLFHM4ZVfl9Y_L zAjz@_3X5r=uaf|nFreX#gCtWU44~pA!yjZNXiZkoHhE$l@=ZTuxcLh53KdMOfanVe zPEX(#8GM7#%2*2}5rrdBk8p#FmzpIC>%1I9!2nRakS|^I*QHbG_^4<=p)(YOKvsTp zE#DzUI>Y&g)4mMaU6Bhrm8rSC{F_4J9sJlF0S5y5_=^l!{?W_n&SPj&7!dEvLzNIRMZBYyYU@Qftts7Zr7r>W- zqqk46|LEF|&6bn#CE~yMbiF&vEoLUA(}WzwmXH_=<~|I(9~{AE$ireF7~XBqPV2)* zcqjOCdi&>tUEuq31s(|TFqx>Wuo(ooWO(sd!W~Hu@AXg=iQgq^O3Lv9xH$vx*vrgDAirQqs9_DLS1e45HcUPdEMziO?Mm1v!)n93L%REy=7 zUxcX!jo!vyl_l0)O(Y~OT``;8mB(tcf}`Rh^weqPnDVDe-ngsZ~C z`onh0WLdaShAAb-3b{hT5ej9a$POQ9;RlPy}IYzKyv+8-HzB7fV!6X@a_T61qZ zWqb&&ip*@{;D-1vR3F2Q&}%Q>TFH&2n?2w8u8g=Y{!|;>P%<@AlshvM;?r7I)yXG% z^IpXZ(~)V*j^~sOG#cWCa+b8LC1IgqFx+Mq$I`6VYGE#AUajA9^$u-{0X#4h49a77 zH>d>h3P@u!{7h2>1j+*KYSNrKE-Q(z`C;n9N>mfdrlWo$!dB35;G4eTWA}(aUj&mNyi-N+lcYGpA zt1<~&u`$tIurZ2-%Tzb1>mb(~B8;f^0?FoPVdJ`NCAOE~hjEPS) z&r7EY4JrG~azq$9$V*bhKxeC;tbBnMds48pDuRy=pHoP*GfkO(UI;rT;Lg9ZH;JU~ zO6gTCRuyEbZ97jQyV7hM!Nfwr=jKjYsR;u8o(`(;qJ(MVo(yA<3kJximtAJjOqT=3 z8Bv-^`)t{h)WUo&t3alsZRJXGPOk&eYf}k2JO!7Au8>cvdJ3wkFE3*WP!m_glB-Rt z!uB>HV9WGcR#2n(rm=s}ulY7tXn5hC#UrNob)-1gzn-KH8T?GEs+JBEU!~9Vg*f6x z_^m1N20Do}>UIURE4srAMM6fAdzygdCLwHe$>CsoWE;S2x@C=1PRwT438P@Vt(Nk` zF~yz7O0RCS!%hMmUSsKwK$)ZtC#wO|L4GjyC?|vzagOP#7;W3*;;k?pc!CA=_U8>% z%G^&5MtFhvKq}RcAl))WF8I#w$So?>+_VEdDm_2=l^K320w~Bn2}p+4zEOt#OjZ6b zxEYoTYzvs$%+ZYwj;mZ@fF42F1-Hb<&72{1J)(D~VyVpo4!dq259t-_Oo3Yg7*R`N zUg!js4NRyfMbS*NLEF}rGrlXz0lHz))&&+B#Tdo@wlh-Q8wr7~9)$;s9+yJH0|m=F zSD9mUW>@HLt}mhAApYrhdviKhW`BfNU3bPSz=hD+!q`t*IhG+Z4XK;_e#AkF5 z&(W7iUWF4PNQ+N!-b-^3B$J4KeA1}&ta@HK=o2khx!I&g#2Y&SWo-;|KXDw!Xb)mP z$`WzPA!F(h*E=QP4;hu7@8J&T|ZPQ2H({7Vau6&g;mer3q?1K!!^`|0ld26 zq|J&h7L-!zn!GnYhjp`c7rG>kd1Y%8yJE9M0-KtN=)8mXh45d&i*bEmm%(4~f&}q@ z1uq)^@SQ~L?aVCAU7ZYFEbZ<730{&m?Un?Q!pxI7DwA^*?HloDysHW{L!JY!oQ8WMK(vT z@fFakL6Ijo$S$GH;cfXcoNvwVc8R7bQnOX2N1s$2fbX@qzTv>748In?JUSk@41;-8 zBw`fUVf$Jxguy{m1t_Z&Q6N$Ww*L9e%6V*r3Yp8&jVpxyM+W?l0km=pwm21ch9}+q z$Z&eb9BARV1?HVgjAzhy);(y1l6)+YZ3+u%f@Y3stu5sSYjQl;3DsM719wz98y4uClWqeD>l(n@ce)pal~-24U~{wq!1Z_ z2`t+)Hjy@nlMYnUu@C`_kopLb7Qqp+6~P=36$O!d2oW=46CGG54Md`6LV3lnTwrBs z!PN}$Kd}EQs!G22mdAfFHuhft!}y;8%)h&@l7@DF0|oy?FR|*E&Zuf=e{8c&hTNu# z6{V#^p+GD@A_CBDV5sM%OA*NwX@k1t?2|)HIBeKk(9!eX#J>jN;)XQ%xq^qVe$I}& z{{cL^a}>@*ZD$Ve)sJVYC!nrAHpV~JiCH3b7AQfAsEfzB$?RgU%+x7jQ_5XQ8Gf*N`i<1mZE zg6*_1dR3B`$&9CxHzk{&&Hf1EHD*JJF2glyBR+hBPnwP@PurN`F80!5{J57z;=kAc za65ouFAve7QEOmfcKg*~HZ04-Ze%9f)9pgrVMf7jcVvOdS{rf+MOsayTFPT}3}YuH z$`%^f$}lBC8IGAma+=j9ruB&42ynhH!5)$xu`tu7idwGOr&t=)a=Y2Sib&Di`^u9X zHQ=liR@by^O`ph|A~{#yG3hHXkO>V|(%=lUmf3vnJa#c%Hc>UNDJZRJ91k%?wnCnF zLJzR5MXCp)Vwu3Ew{OKUb?PFEl6kBOqCd&Qa4q=QDD-N$;F36Z_%SG}6{h2GX6*57 zRQIbqtpQeEIc4v{OI+qzMg_lH=!~Ow%Xx9U+%r9jhMU=7$;L7yJt)q+CF#lHydiPP zQSD=AtDqdsr4G!m%%IauT@{MQs+n7zk)^q5!VQrp?mFajX%NQT#yG9%PTFP>QNtfTM%6+b^n%O`Bk74Ih| zb>Fh1ic{a<8g<{oJzd|@J)fVVqs&^DGPR-*mj?!Z?nr<f)C8^oI(N4feAst}o?y z-9Ne339xN7Lt|Tc50a48C*{21Ii$0a-fzG1KNwDxfO9wkvVTRuAaF41CyVgT?b46; zQvjU!6L0pZM%DH&;`u`!x+!;LaPBfT8{<_OsEC5>>MoJQ5L+#3cmoiH9=67gZa;rvlDJ7_(CYt3KSR$Q#UR*+0hyk z>Dkd2R$q~_^IL2^LtY|xNZR(XzMZJ_IFVeNSsy;CeEVH|xuS#>itf+~;XXYSZ9t%1moPWayiX=iA z!aU~)WgV!vNTU=N;SpQ((yz#I1R#rZ&q!XD=wdlJk4L&BRcq(>6asB_j$7NKLR%v; z9SSp$oL7O|kne`e@>Bdf7!sJ*MqAtBlyt9;OP3UU1O=u6eGnFWKT%2?VHlR86@ugy z>K)(@ICcok6NTTr-Jh7rk=3jr9`ao!tjF;r~GXtH~_&Wb9J^ zd%FYu_4^3_v&odTH~%mHE;RYmeo+x^tUrB>x}Is&K{f+57e-7Y%$|uN%mf;l5Za95 zvojcY`uSCH~kno zs4pMlci*Y>O_pcxZY#?gt1^b-;f(1l9}Ov7ZpHtxfbVMHbX;579A>16C&H5Q>pVpH5LLr<_=!7ZfX23b1L4^WhtD?5WG;^zM}T>FUHRJv zK~xq88?P);SX-DS*1LmYUkC?LNwPRXLYNoh0Qwj@mw9OP&u{w=bKPQ)_F0-ptGcL0 zhPPLKIbHq|SZ`@1@P5=G^_@i+U2QOp@MX#G9OI20NzJm60^OE;^n?A8CH+XMS&3ek zP#E7Y==p;4UucIV{^B`LaH~>g6WqcfeuB#1&=l!@L=UMoQ0$U*q|y(}M(Y&P$Xs&| zJ&|dUymE?`x$DBj27PcDTJJn0`H8>7EPTV(nLEIsO&9Cw1Dc&3(&XFt9FTc{-_(F+ z-}h1wWjyG5(ihWu_3qwi; zAccCjB3fJjK`p=0VQo!nPkr0fT|FG;gbH}|1p`U>guv9M8g2phJBkPC`}ISoje6+? zvX|r5a%Y-@WjDM1&-dIH2XM}4{{d&zAVJQEG9HB8FjX&+h*H=wK=xOgNh8WgwBxW+ z0=^CzC4|O_GM>^_%C!!2jd&x*n2--yT>PZJ`Mok6Vf4YFqYp@a%)W}F4^DpKh`Cr7 z{>Z7xw-4UfT@##s#6h%@4^s^7~$}p2$v^iR5uJljApd9%#>QuxvX+CSZv18MPeXPCizQ*bm);q zWhnVEeM}dlCQP*^8;Q7OM|SSgP+J;DQy|bBhuFwJ2y*^|dBwz96-H;~RNsc}#i= zwu`Tp4$bwRVb7dxGr_e1+bJEc=mxLxN_f>hwb#^|hNdewcYdqXPrOxDE;|mP#H|a% z{u8#Vn}zVP(yJ}+-dx;!8<1in=Q8KsU%Q5CFV%5mGi8L;)*m%Vs0+S`ZY(z7aZ$VCjp?{r>C<9@$zVN;LVhxzPEdDPdb8g<)pckA z?mG@Ri>ode(r|hjNwV#*{!B^l2KO@4A+!X;#PW#?v2U!ydYIFHiXC3>i2k7{VTfji>h z8-(^;x!>f)Qh$mlD-z^1Nxu})XPbN=AUsb%qhmTKjd=1BjKr(L9gb1w4Y8p+duWfS zU>%C>*lCR@+(ku!(>_SA6=4CeM|$k4-zv|3!wHy+H&Oc$SHr%QM(IaBS@#s}O?R7j ztiQ>j^{X)jmTPq-%fFDxtm%p|^*M;>yA;3WM(rLV_PiB~#Eaicp!*NztJNH;q5BW$ zqqlfSq@C0A7@#?oRbzrZTNgP1*TWt(1qHii6cp5U@n|vsFxJ|AG5;)3qdrM4JElmN z+$u4wOW7(>$mMVRVJHsR8roIe8Vif+ml3~-?mpRos62r0k#YjdjmK;rHd{;QxB?JV zyoIBkfqYBZ!LZDdOZArQlgXUGmbpe7B-y7MftT;>%aM1fy3?^CuC{al$2-tfcA?d) z<=t7}BWsxH3ElE^?E&|f{ODX&bs+Ax>axcdY5oQ`8hT)YfF%_1-|p*a9$R~C=-sT| zRA~-Q$_9|G(Pf9I+y!zc>fu)&JACoq&;PMB^E;gIj6WeU=I!+scfSr}I%oD1fh+AQ zB^Q^b@ti5`bhx+(5XG5*+##vV>30UCR>QLYxHYY~k!AR`O6O_a3&wuW61eyHaq;HL zqy@?I*fmB)XY;Z@RH^IR|6m1nwWv>PDONtZV-{3@RkM_JcroRNLTM9?=CI}l%p86A zdxv|{zFWNI;L8K9hFSxD+`-pwvnyS|O?{H-rg6dPH<3oXgF0vU5;~yXtBUXd>lDs~ zX!y3-Pr9l;1Q^Z<15_k1kg|fR%aJKzwkIyED%CdxoXql=^QB;^*=2nVfi{w?0c@Dj z_MQEYjDpf^`%)$|4h>XnnKw05e5p4Jy69{uJ5p|PzY+S?FF~KWAd0$W<`;?=M+^d zhH&>)@D9v1JH2DP?tsjABL+OLE2@IB)sa@R!iKTz4AHYhMiArm)d-*zitT+1e4=B( zUpObeG_s*FMg$#?Kn4%GKd{(2HnXx*@phT7rEV?dhE>LGR3!C9!M>3DgjkVR>W)p3 zCD0L3Ex5-#aJQS6lJXP9_VsQaki5#jx}+mM1`#(C8ga~rPL{2Z;^^b+0{X)_618Sw z0y6LTkk;)quIAYpPY{)fHJLk?)(vxt?roO24{C!ck}A)_$gGS>g!V^@`F#wg+%Cok zzt6hJE|ESs@S^oHMp3H?3SzqBh4AN(5SGi#(HCarl^(Jli#(%PaSP9sPJ-9plwZv{ z1lkTGk4UAXYP^>V+4;nQ4A~n-<+1N)1lPzXIbG{Q;e3~T_=Trak{WyjW+n!zhT*%)q?gx zTl4(Gf6Y|ALS!H$8O?=}AlN=^3yZCTX@)9g5b_fif_E{lWS~0t`KpH8kkSnWWz+G1 zjFrz}gTnQ2k-`oag*031Nj7=MZfP}gvrNvv_crWzf9Cdzv^LyBeEyF2#hGg8_C8jW)NCAhsm2W_P21DeX7x$4EDD){~vBiLoby=d+&(;_f(?PMfamC zI_z%>Nq-rC%#z#1UC49j4@m63@_7LWD$ze=1%GPh`%@PB7yGH6Zh=1#L%&%hU7z%Y zs!IN(ef@!+|1YR28@#kw^XR= zxB$*nNZm7Y@L0&IlmoN}kEI?dBee+z+!MWCy+e4P4MYpOgr}2Q(wnR1ZiA>5_P*Cg zB4BMlcx?(v*+V3O+p~Buk;wIN6v!Ut?gYpl+KFu~elf}{E4`9+lcR0k$bC>+I zWxO5jD8sYPbMS)4c3i2UojI4T7uzE*Zz;POw{0d0`*iHJ%(Pb=sa^pV{t_JtHoPeC zX+t_k*=D%+Sv#+5CeoRfI)G`T90~AE@K9RaFR%8*w#*x9>H$ahFd>PUg_zP`VVPSR zr#Rb;I--8Rq;eTBju;dx2cmZ9Al>aiDY z#7(4S(A#aRvl7jm78sQ+O^S5eUS8|W%5@Pt9fm?J=r`~=l-gdv(LB~C-Gi#srwEDQ z4cCvA*XiRj9VDR6Ccy2k(Nvxic;~%YrfNeWl$cJpa%WO_4k?wxKZ{&`V#!&#jV@x+ z7!!YxOskc;cAF~`&aRWp8E)fnELtvb3-eHkeBPb~lR&iH=lZd^ZB(T6jDg5PnkJQFu9? z+24ww5L%opvEkE$LUHkZDd0ljo!W}0clObhAz`cPFx2)X3Sk91#yLL}N6AE0_O`l| z7ZhaKuAi7$?8uuZAFL(G0x3wE<-~^neGm=*HgJa(((J;yQI$NB)J;i0?vr`M1v+R? zd+{rD^zK}0Gi!2lXo0P+jVQ$HNYn^sRMONYVZPPT@enUb1pHHYgZMo5GN~SIz*;gv z1H<4(%53!6$4+VX_@Kp!>A9wwo{(KdWx)ja>x3&4=H(Urbn?0Vh}W3%ly5SgJ<+X5?N7-B=byoKyICr>3 zIFXe;chMk7-cak~YKL8Bf>VbZbX{5L9ygP_XS?oByNL*zmp8&n9{D42I^=W=TTM4X zwb_0axNK?kQ;)QUg?4FvxxV7L@sndJL0O12M6TMorI&cAL%Q464id6?Tbd_H!;=SRW9w2M*wc00yKVFslv|WN( zY7=Yikt+VY@DpzKq7@z_bVqr7D5B3xRbMrU5IO7;~w2nNyP7J_Gp>>7z?3!#uT4%-~h6)Ee1H z&^g}vZ{g}DIs@FDzE$QG_smSuEyso@I#ID3-kkYXR=nYuaa0{%;$WzZC@j)MDi+jC z!8KC;1mGCHGKr>dR;3;eDyp^0%DH`1?c7JcsCx$=m(cs^4G& zl@Fi8z|>J`^Z-faK{mhsK|;m%9?luacM+~uhN@<20dfp4ZN@qsi%gM67zZ`OHw=PE zr95O@U(HheB7OBYtyF=*Z5V&m?WDvIQ`edwpnT?bV`boB z!wPf&-@7 z0SoTB^Cy>rDHm%^b0cv@xBO%02~^=M79S}TG8cbVhj72!yN_87}iA1;J$_xTb+Zi@76a{<{OP0h&*Yx`U+mkA#x3YQ} zPmJsUz}U0r?foPOWd5JFI_hs_%wHNa_@)?(QJXg>@=W_S23#0{chEio`80k%1S?FWp1U;4#$xlI-5%PEzJcm zxjp$&(9f2xEx!&CyZZw|PGx&4$gQbVM|<2J&H7rpu;@Mc$YmF9sz}-k0QZ!YT$DUw z_I=P(NWFl!G-}aofV?5egW%oyhhdVp^TZH%Q4 zA2gia^vW{}T19^8q9&jtsgGO4R70}XzC-x?W0dBo+P+J8ik=6}CdPUq-VxQ#u4JVJ zo7bigUNyEcjG432-Epy)Rp_WDgwjoYP%W|&U~Gq-r`XK=jsnWGmXW6F}c7eg;$PHh>KZ@{cbTI<`ZP>s(M@zy=aHMA2nb(L0COlVcl8UXK+6`@Di+Wai;lJf^7s6V%NkKcad zDYY%2utqcw#CJFT9*V9U_{DyP&VYb)(6y`Z%Rq& z!PTtuI#psBgLPoNu{xvs^y26`oY;p!fE=bJW!cP^T>bUE*UKBV5Bd%!U{Q5{bKwN> zv)pn@Oc{6RyIS>!@Yvkv+hVLe+bmQ6fY2L}tT)Vbewg8`A`PFYyP+@QmL?b{RED;; zR6fwAAD}Ogejah(58bv{VG&WJhll7X-hjO9dK`8m5uFvthD1+FkJtT_>*{yKA(lXx zKucHMz#F_G)yTJw!)I3XQ7^9ydSlr9D)z?e*jKYE?xTKjR|ci30McU^4unzPsHGKN zMqwGd{W_1_jBQ_oeU^4!Ih}*#AKF%7txXZ0GD}Jzcf+i*?WLAe6#R_R-bSr17K%If z8O2SwYwMviXiJ?+$% zse=E~rK*PH@1Md4PFP)t(NhV%L3$657FUMap?fugnm3|N z79w3|qE%QyqZB}2WG&yc>iOaweUb`5o5p9PgyjqdU*sXP=pi$-1$9fGXYgS2?grS6 zwo#J~)tUTa0tmGNk!bg*Pss&uthJDJ$n)EgE>GAWRGOXeygh;f@HGAi4f){s40n?k z=6IO?H1_Z9XGzBIYESSEPCJQrmru?=DG_47*>STd@5s;1Y|r*+(7s4|t+RHvH<2!K z%leY$lIA{>PD_0bptxA`NZx-L!v}T4JecK#92kr*swa}@IVsyk{x(S}eI)5X+uhpS z8x~2mNLf$>ZCBxqUo(>~Yy4Z3LMYahA0S6NW;rB%)9Q z8@37&h7T$v2%L|&#dkP}N$&Jn*Eqv81Y*#vDw~2rM7*&nWf&wHeAwyfdRd%`>ykby zC*W9p2UbiX>R^-!H-ubrR;5Z}og8xx!%)^&CMl(*!F%or1y&({bg?6((#og-6Hey&3th3S%!n3N|Z2ZCZHJxvQ9rt zv|N#i*1=qehIz_=n*TWC6x-ab)fGr8cu!oYV+N)}3M;H4%$jwO>L!e53sxmJC~;O; zhJw|^&=2p!b8uk{-M|Z*J9n0{(8^>P+Y7vlFLc8#weQMg2iB8MFCe-*^BJV6uVWjg zWZe{-t0f67J<|IIn4{wsKlG*Amy{-yOWMMW)g}rh>uEE;jbkS-om>uAjeTzCg51683UTmY4+yT zW!qe`?~F{~1Y>mPJ9M0hNRBW$%ZwOA-NdIeaE6_K z>y8D3tAD7{3FouIXX9_MbY;zq%Ce0}VmT;aO~=*Mk4mflb_i4CApxEtZ^TDNoOzy_ z-eIE(&n1Vz*j&(BjO*fVvSCozTJU4?tWC8m4=d|D{WV0k+0M2!F1=T}z7V4-JA*y( z!;H(sOBmg=%7p&LLf%z%>VgtdN6jl2y95aXY}v9U;m~YWx{2#lwLpEJWGgs`sE*15 zvK`DtH-Q^ix>9@qVG+d*-C{lYPBbts1|%3!CkLP1t4iz%LO-di4lY%{8>jd{turVrD*_lLv!ShQC~S#SXjCO?##c zh2aZKVAHDf1sQpZiH^C7NRu?44JuEp?%W4-?d;Dg z;`gKA9$oC{WlQuT?fex!ci3GJhU;1J!YLHbyh8B-jsZ~pl59LGannKg9}1qxlbOOq zaJhTl zEJ`2Xd_ffdK^EE1v>8kUZG`eMXw(9S+?Lxx#yTUo?WdV}5kjC|glSJqX zv8RO|m#Ed@hW=};Yfl&2_@11Xm}pz0*SRx%OH_NODo@>e$cMAv(0u`~Yo|qbQ~mzA zMKt^U+GIXKH^xuD9n}NfU|?ZTOSS>XJwlg`lYHgea)!ZR?m^=oj+qyKBd6SJvPZk* zwc-2$b%%V~k$5{=(rG!OcR{;u2V3um|C+oT5F?rt`CER|iU9-!_|GxMe^!f$d6*iz z{?~JnR84mS+!gFUxugG?g9uGFI(?Q0SADS8=n=#aCK^`6@rm4r=LJTBm;)cY zm_6c5!ni$SWFOuj36eKau>6=kl_p=-7>VL_fJuJZI}0=3kASf|t;B~;Mt(vuhCU+c zKCF@SJ5#1>8YLfe{pf?sH*v6C)rOvO1~%@+wN}#>dkcrLw8U@xAySc{UeaP?7^AQ5 zmThfw^(i@*GMlM!xf+dzhRtbo8#;6Ql_s$t15q%*KeCm3`JrXnU*T^hV-aGX)bmxF z;O%jGc{6G+$gZ$YvOM2bZ!?>X<^-D zbT+YCx722}NY88YhKnw?yjF1#vo1v+pjId;cdyT*SH@Bc>6(GV*IBkddKx%b?y!r6 z=?0sTwf`I_Jcm(J8D~X@ESiO`X&i53!9}5l}PXzSYf9 zd&=h`{8BP-R?E*Nk$yzSSFhz2uVerdhbcCWF{S7reTkzXB;U@{9`hvC0AscwoqqU( zKQavt5OPm9y1UpKL%O(SWSSX=eo2rky_8jJ-ew7>iw~T=Xrt3EEzc!slebwG)FrE> z>ASkjJk%#@%SFWs-X4)?TzbBtDuwF#;WVw}?(K`UYqm`3vKbFKuqQ8uL2Y5}%T0y5 zia#E?tyZgnuk$LD^ihIn(i~|1qs(%NpH844QX-2S5E)E7lSM=V56o>5vLB^7??Vy_ zgEIztL|85kDrYF(VUnJ$^5hA;|41_6k-zO#<7gdprPj;eY_Et)Wexf!udXbBkCUA)>vi1E!r2P_NTw6Vl6)%M!WiK+jLRKEoHMR zinUK!i4qkppano|OyK(5p(Dv3DW`<#wQVfDMXH~H(jJdP47Y~`% z#ue|pQaVSv^h#bToy|pL!rWz8FQ53tnbEQ5j#7op?#c#(tj@SM2X*uH!;v8KtS5Fo zW_HE8)jSL zYO}ii#_KujRL4G*5peU)-lDW0%E}!YwL#IKUX_1l9ijy~GTFhO?W^=vEBe?m+tvBe zLaGWcoKg==%dO#6R}`U0>M)2+{b*~uamlaUNN<_NVZTGY4-(ORqK6|HvKFMKwp6^L zR+MC^`6^|^=u^Do;wy8mUp^Oct9~=vQ74vfO-m&Q0#~-mkqkpw&dMkVJ(So<)tf3h z46~mW_3T@Mzh<2XZYO7@F4j|BbhhXjs*hayIjTKyGoYO}`jEFn^!4Y! zL30ubp4U(r>Nx&RhaJkGXuRe%%f%D;1-Zdw2-9^Mq{rP-ZNLMpi~m+v?L=sPSAGcc z{j+Y!3CVrm);@{ z;T?sp1|%lk1Q&`&bz+#6#NFT*?Zv3k!hEnMBRfN47vcpR20yJAYT(5MQ@k;5Xv@+J zLjFd{X_il?74aOAMr~6XUh7sT4^yyLl%D89Io`m5=qK_pimk+af+T^EF>Y)Z{^#b# zt%%Bj9>JW!1Zx_1exoU~obfxHy6mBA{V6E)12gLp-3=21=O82wENQ}H@{=SO89z&c*S8Veq8`a3l@EQO zqaNR8IItz4^}>9d+Oj%YUQlb;;*C0!iC&8gaiDJ)bqg(92<>RbXiqFI3t#jqI%3Y( zPop=j=AyLA?pMYaqp0eHbDViOWV-5IUVwx+Fl6M54*?i+MadJHIRjiQoUe?v-1XdQ z5S305nVbg|sy~qPr2C6}q!v)8E%$i~p5_jGPA0%3*F%>XW6g)@4-z73pVcvWs$J2m zpLeW4!!31%k#VUG76V__S**9oC{-&P6=^fGM$2q<+1eC}Fa2EB3^s{ru^hI}e^KPM zMyj;bLtsRex^QMcgF)1U0biJ|ATXX`YuhzWMwP73e0U?P=>L|R?+13$8(PB23(4Js zy@KS0vvS~rk*^07Bd4}^gpc|e5%248Mei_y^mrD;zUYniPazU>1Dun%bVQ0T7DNXr zMq4Y09V_Dr1OQ$ni)BSyXJZ+D7 zXHh02bToWd;4AlF-G`mk23kD=$9B)}*I@kF9$WcOHc%d6BdemN(!^z0B3rvR>NPQ? z+vv#Qa~Ht|BiTdcN;g6;eb6!Jso)MFD3{sf{T;!fM^OwcEtoJI#ta?+R>|R;Ty2E% zjF8@wgWC=}Kkv52c@8Psigo4#G#E?T(;i}rq+t}E(I(gAekZX;HbTR5ukI>8n5}oC zXXTcy>tC{sG$yFf?bIqBAK3C^X3OAY^Too{qI_uZga0cK4Z$g?Zu$#Eg|UEusQ)t% z{l}Zjf5OrK?wkKJ?X3yvfi{Nz4Jp5|WTnOlT{4sc3cH*z8xY(06G;n&C;_R!EYP+m z2jl$iTz%_W=^)Lhd_8hWvN4&HPyPTchm-PGl-v~>rM$b>?aX;E&%3$1EB7{?uznxn z%yp0FSFh(SyaNB@T`|yVbS!n-K0P|_9dl=oE`7b?oisW)if(`g73bkt^_NHNR_|XU z=g?00`gZRHZm+0B(KvZ0?&(n<#j!sFvr|;G2;8qWg3u%P;M1+UL!9nj)q!}cd}jxK zdw=K$?NuLj?2#YzTCEw1SfLr#3`3x(MB2F(j!6BMK!{jXF%qs;!bIFpar}^=OYmYm z86RJ9cZl5SuR6emPB>yrO)xg5>VucBcrV3UxTgZcUu(pYr+Sa=vl>4ql{NQy4-T%M zlCPf>t}rpgAS15uevdwJR_*5_H?USp=RR?a>$gSk-+w;VuIhukt9186ppP=Lzy1L7 ztx(smiwEKL>hkjH7Y))GcUk`Y z5ECCi%1tZE!rM4TU=lk^UdvMlTfvxem>?j&r?OZ>W4w?APw@uZ8qL`fTtS zQtB<7SczI&5ZKELNH8DU6UNe1SFyvU%S#WTlf%`QC8Z+*k{IQx`J}f79r+Sj-x|4f<|Jux>{!M|pWYf+ z-ST5a#Kn+V{DNZ0224A_ddrj3nA#XfsiTE9S+P9jnY<}MtGSKvVl|Em)=o#A607CfVjjA9S%vhb@C~*a2EQP= zy%omjzEs5x58jMrb>4HOurbxT7SUM@$dcH_k6U7LsyzmU9Bx3>q_Ct|QX{Zxr4Fz@ zGJYP!*yY~eryK`JRpCpC84p3mL?Gk0Gh48K+R$+<|KOB+nBL`QDC%?)zHXgyxS2}o zf!(A9x9Wgcv%(sn!?7Ec!-?CcP%no4K?dJHyyT)*$AiuGoyt=pM`gqw%S^@k8>V0V z4i~0?c>K{$I?NY;_`hy_j6Q{m~KDzkiGK z_ffu;+_e|m4d z_15oa@X;ab>43Run@zSszD-O!Nzy19m6h=R&twRlK+X3D)oKgLC~V9;J?XX>R3RGu zN|Unh(=HTQW)p?RT?&YNvMAv~vJ}zfcgn1a!J8UlwFd3TtiZ$TBtodeiE>6A>GCn^ zA`xU#q8UUJtPK*ND2fFUQVkl2(kzOkmFLZzH`JfJN%Y^99H_ZWjp0hL1Vw3?&qfM3@+M^tH0_;<4Av)eE{sGa?Elr02@SE;bbunGzjUVjG@9;L4^O6+mQdA@W)T zTdtB=Wto*&%qAF#4J`~oH7H5JSQw_Dpu=pkcTn!@9BcAv(bAckzhn|(lO7cYmsWwQ zN(_flmMl~iTNR2`&kt!SQrAcDY-u4!ZVrZ|Q3XOkVMWs#p&I(S^f6PD*XMguv@Vfl4&3R1!c}Ak zBM$#qTN-oX{d(%C%SrM_<*eHXl(?L3Mg==FJ2!2c)#Ow0-i>BCO;Qa9yt3Tb^7_mL zwro0iju!_*mSh=n>&{rY!B2_kLrPvTKiU~GH>}Il_aG5{LX1VsQEHw*hq0g$>i8&L z^J{Kn@_5#Z;7fs>a=lwox7_>f(`d(Km)uh&t$P_kzUi>LH;-Ah-hm)|V#J7yMiZ8) zoT4U>gw4kXOYWe-T=wlRp6!uz>t8CLLfy=`j@KUyZv;hyTVD%zSoUr+p4+Y&C$JR` zBLz45pFnB`Ag$l-2*UxHN0HvlE-;D%Uka-_M?VIu9|NBS)jpJz!QLzOJ+bi&NA0jE zEHVN-`b9V=TIL|?d!DtKK|r|TuiC*7p%J2n4xtB;kY3(M(4AQ14fR=3cDE={p=1hc z2hi^e3gAJ#f#Q4kS{M`;xDQ}UJ1milbEbWyNIF#gLCO@wCLYp)^#TiYQ14g^5X~rZ zg@vM!RKaL+1&I_Vbccb04rS@hET`LIZ+XDYe$`7j2Q7}R?A0aGJfiV{c<2p;kZB>-U zQEN|->iffGid`~+-bj7N#NHG+UOWHh#zy{=tLdR??HPLP-~=X04ZUtcjU&e8!wQP! z`+$WGQ^2o|tIno1Rg<;*UpI|iX|+k7x3zttENrC?7FcN|4HmOL6z7=(Cj}#rIu5Z+ zTEN;1Yo73xqzv{Yw}{r*T5EIM5!cA>E1c>XE08)aE2*k-yE-?Pje$)5dIR7P*TSUl z8C*d!g;gGY@TT4B(r}4enl8-t(arQsGX}dc4rV-HY-26MiHx|ry7w{R^>as@Gh#6O|j}_Gy*U>z}Is<#1ysnyhy3cq|$9zaz=lU1M zZJz1tbH;b4Z?~W8jAp^#kw2&kPe^ILsmc_m$P8nZIuZL|m!{R}FSRk)xG@{NFld&< zz$VX0NZXZNH%he}fVmUyQ$zY7CTSovrQ^9b;1-eG*kA9MmC=2!Ay7ye?QWMlC#Gb5 zTHwU<<%!(N9OYa!QxJxf$b4nMXc+v!9^W3wp?jI8ds(1-O0a+=mC5I4kF%XRP`YqL z?6yR@EcyC3+Q>nzy)iuCvhEYi|C_7w&zR?b0gH0f&ef6CQNDPYNEoBB9H>!J)HXu( zAtE=R%tZxC#8eOzs%nIpLgx+0a%2Q-t_`iM(7Wu`d|I+-J*9>`W3StC7wdele$4yj zU-x8yN`ybnWhedK>AJk#_S*G&9Nqo71zL}$ep-O`JL8Gz+-Tue7~wk)$5{||7?1nf zcY3(H1BTgH_j`!AIHpqy2Wggz^!9$!HZ29_SOnd|Hg`hGX_l+Pk(2v1Ly`n5dQT}4m zR;x~`dICosOtpbb%oCR;0nE#x=Hl&IP2eaeYH4hV^-PN=t@q-Df{p#18#yM&%^
)Mf(9O=$zt#xQMm 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 \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/VL03-01-01/gradlew.bat b/VL03-01-01/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/VL03-01-01/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/VL03-01-01/libs/processemu-javadoc.jar b/VL03-01-01/libs/processemu-javadoc.jar new file mode 100644 index 0000000000000000000000000000000000000000..b613cdd1de17fc7bf5ddacd06c5db257c5a6476e GIT binary patch literal 24240 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%0D0+N4#>QnCDIw>?)kT5j+nM&OUV2Qe7y&?zIsC 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 literal 0 HcmV?d00001 diff --git a/VL03-01-01/libs/processemu.jar b/VL03-01-01/libs/processemu.jar new file mode 100644 index 0000000000000000000000000000000000000000..8d2047e9e7e98eb33f6b07b60002a2d446d0eb9f GIT binary patch literal 3788 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 literal 0 HcmV?d00001 diff --git a/VL03-01-01/src/main/java/de/dhbw/parprog/CalcTask.java b/VL03-01-01/src/main/java/de/dhbw/parprog/CalcTask.java new file mode 100644 index 0000000..8d500d9 --- /dev/null +++ b/VL03-01-01/src/main/java/de/dhbw/parprog/CalcTask.java @@ -0,0 +1,24 @@ +package de.dhbw.parprog; + +import de.dhbw.parprog.processemu.Pipe; +import de.dhbw.parprog.processemu.ProcessWithPipe; +import java.io.*; + +public class CalcTask implements ProcessWithPipe { + + private static PrintStream printStreamForPipe(Pipe pipe) { + return new PrintStream(pipe.getOut()); + } + + @Override + public void main(final Pipe pipe) { + try { + Thread.sleep(1000); + PrintStream p = printStreamForPipe(pipe); + p.println(42); + p.close(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } +} diff --git a/VL03-01-01/src/main/java/de/dhbw/parprog/JavaPipe.java b/VL03-01-01/src/main/java/de/dhbw/parprog/JavaPipe.java new file mode 100644 index 0000000..198048e --- /dev/null +++ b/VL03-01-01/src/main/java/de/dhbw/parprog/JavaPipe.java @@ -0,0 +1,43 @@ +package de.dhbw.parprog; + +import de.dhbw.parprog.processemu.Pipe; +import de.dhbw.parprog.processemu.ProcessEmu; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.ArrayList; + +public class JavaPipe { + + public static void main(String[] args) throws IOException { + + // get the number of tasks from console. + System.out.print("Number of Tasks: "); + int number_of_tasks = Integer.parseInt(System.console().readLine()); + + if (number_of_tasks < 0) { + System.out.println("Not a valid input!"); + return; + } + + ArrayList pipes = new ArrayList(); + int sum = 0; + + for (int i = 0; i < number_of_tasks; i++) { + Pipe pipe = new Pipe(); + pipes.add(pipe); + ProcessEmu.fork(pipe, new CalcTask()); + } + + for (int i = 0; i < number_of_tasks; i++) { + Pipe pipe = pipes.get(i); + BufferedReader in = new BufferedReader(new InputStreamReader(pipe.getIn())); + String data = in.readLine(); + sum += Integer.parseInt(data); + } + + // output the sum. + System.out.println("Sum of all Tasks: " + sum); + } +}