From 02ffa0e76ab41bc7a59f79e32c03bab0ce95e26a Mon Sep 17 00:00:00 2001 From: Matthos Denys Date: Thu, 20 May 2021 12:54:15 +0300 Subject: [PATCH] normed --- philo_two/Makefile | 14 ++++- philo_two/includes/philo_header.h | 35 ++++++++----- philo_two/obj/ft_exit.o | Bin 0 -> 4908 bytes philo_two/obj/ft_itoa.o | Bin 3236 -> 3720 bytes philo_two/obj/ft_strjoin.o | Bin 2784 -> 2772 bytes philo_two/obj/logic.o | Bin 7988 -> 6796 bytes philo_two/obj/main.o | Bin 2356 -> 2340 bytes philo_two/obj/messages.o | Bin 5092 -> 5020 bytes philo_two/obj/observer.o | Bin 0 -> 5972 bytes philo_two/obj/old_utilc.o | Bin 4344 -> 4324 bytes philo_two/obj/parser.o | Bin 6840 -> 7160 bytes philo_two/obj/prepare_simulation.o | Bin 7520 -> 7472 bytes philo_two/obj/time.o | Bin 4244 -> 4224 bytes philo_two/obj/utilc.o | Bin 8344 -> 7296 bytes philo_two/obj/utilc2.o | Bin 0 -> 2536 bytes philo_two/philo_two | Bin 18736 -> 19472 bytes philo_two/srcs/ft_exit.c | 30 +++++++++++ philo_two/srcs/ft_itoa.c | 35 +++++++++++-- philo_two/srcs/ft_strjoin.c | 18 +++++-- philo_two/srcs/logic.c | 76 ++++++++++------------------ philo_two/srcs/main.c | 18 +++++-- philo_two/srcs/messages.c | 14 ++++- philo_two/srcs/observer.c | 58 +++++++++++++++++++++ philo_two/srcs/old_utilc.c | 16 +++++- philo_two/srcs/parser.c | 67 +++++++++++++++--------- philo_two/srcs/prepare_simulation.c | 41 ++++++++++----- philo_two/srcs/time.c | 12 +++++ philo_two/srcs/utilc.c | 27 ++++++---- philo_two/srcs/utilc2.c | 19 +++++++ 29 files changed, 353 insertions(+), 127 deletions(-) create mode 100644 philo_two/obj/ft_exit.o create mode 100644 philo_two/obj/observer.o create mode 100644 philo_two/obj/utilc2.o create mode 100644 philo_two/srcs/ft_exit.c create mode 100644 philo_two/srcs/observer.c create mode 100644 philo_two/srcs/utilc2.c diff --git a/philo_two/Makefile b/philo_two/Makefile index b183fa6..6f30353 100644 --- a/philo_two/Makefile +++ b/philo_two/Makefile @@ -1,8 +1,20 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: mdenys +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2021/05/20 12:13:10 by mdenys #+# #+# # +# Updated: 2021/05/20 12:16:38 by mdenys ### ########.fr # +# # +# **************************************************************************** # + .PHONY: all clean fclean re SRCS = main.c utilc.c parser.c logic.c messages.c\ prepare_simulation.c old_utilc.c time.c ft_itoa.c\ - ft_strjoin.c + ft_strjoin.c utilc2.c observer.c ft_exit.c SRC_DIR = ./srcs/ diff --git a/philo_two/includes/philo_header.h b/philo_two/includes/philo_header.h index d280ce8..de130e0 100644 --- a/philo_two/includes/philo_header.h +++ b/philo_two/includes/philo_header.h @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* philo_header.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:33 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:21:47 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #ifndef PHILO_HEADER_H # define PHILO_HEADER_H @@ -9,19 +21,18 @@ # include # include # include - # define _SEM_NAME_FORKS "pSemForks" # define _SEM_WRITE_LOCK "write" -typedef struct s_philo_data t_philo_data; +typedef struct s_philo_data t_philo_data; -typedef struct s_all +typedef struct s_all { - int number_of_philosophers; + int nbr_phils; time_t time_to_die; time_t time_to_eat; time_t time_to_sleep; - int number_of_times_each_philosopher_must_eat; + int etarate_meal; time_t start_time; t_philo_data *data_philo; sem_t *write; @@ -29,11 +40,10 @@ typedef struct s_all int opt; } t_all; - -typedef struct s_philo +typedef struct s_philo { - unsigned worked:1; - unsigned can_run_simulation:1; + unsigned worked :1; + unsigned can_run_simulation :1; pthread_t thread; int count_eat; time_t time_to_die; @@ -47,7 +57,7 @@ typedef struct s_philo char *name; } t_philo; -typedef struct s_philo_data +typedef struct s_philo_data { sem_t *sems; t_philo *philors; @@ -62,7 +72,7 @@ int runner(t_all *all); int return_big(int a, int b); int return_less(int a, int b); time_t ft_get_time(void); -void *run_trhead(t_philo *philo); +void *run_trhead(t_philo *philo); int prepare_resources(t_all *all); int check_all_run(t_all *all); void run_simulation(t_all *all); @@ -71,7 +81,7 @@ void messages(t_all *all, t_philo *philo, char *str); void cycle(t_philo *philo); void ft_msleep(time_t interval_ms); void my_usleep(long time); -void ft_exit(t_all *all); +int ft_exit(t_all *all, int ret); char *ft_itoa(int n); char *ft_strjoin(char const *s1, char const *s2); sem_t *reopen_sem(const char *name, int value); @@ -80,4 +90,5 @@ size_t ft_strlcpy(char *dst, const char *src, size_t size); size_t ft_strlcat(char *dst, const char *src, size_t size); int ft_strlen(char *str); void get_data_for_philo(t_all *all); +int run_observer(t_all *all); #endif diff --git a/philo_two/obj/ft_exit.o b/philo_two/obj/ft_exit.o new file mode 100644 index 0000000000000000000000000000000000000000..ad040fcfebc5336884ad9b6e59858c369df77608 GIT binary patch literal 4908 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 literal 0 HcmV?d00001 diff --git a/philo_two/obj/ft_itoa.o b/philo_two/obj/ft_itoa.o index 74b3560ed06146929dabdf00dceaa273ba79ff02..52a7614822f593e6fab7956cc57330d39883037b 100644 GIT binary patch literal 3720 zcmb7GZERCj7(Tb{x!u~)77&4m+60s@w|0C7hcKn)^07#e;rs!2U01eBciXHjUs5xz zB26_Z;#V{v;g>Nc65@}Bp+U(b2Z zd(S!T_qVVA?PN@`GYnt{cn-(l2ZN@AKPKb9kXC0pG|B;4Ixrcrhm0UyPe*s9&AF*> z3UzF{qg%5>R0N3dXxZWfQ$iUayG6R*9qr2W=&5wSFzNd0=UO*DZMm6+b6i@ks1=tr zu~`$67GAikt3SGf^lH3kWOPahw){GWJ{L?8N=)-%S=n9;54>sQ~|3S)y3Z$KLTZpP@74_fz) zv6}rxd-ZMoI4x#^u2UpsUTaR$x^MBAArNc#>y!6unLN-P4Q6%; z^+{7zeGA~81{Oa0c=7{M5ZUP=qAhQLTn34HnDuQahnV(H$3Ws^cJI`#<*($krChee zyl+yi+e4+%e5ibl`cep$FfD}2Th4eNepP^ui9a7I)4JDa-3%7=yv*yIUgD#V<9w>Kc$`eg=x7{3L>?9+n@;1A{Vqm`=F*=)bc->mVD?& zE?Y*u_ajj&gl-hthVmEBIed+Uwh^S~+eQGF8&>k6p(QD`4(&0l(Q{~~9heK>!q`G;FKsXip0L>q>#eLXrlS_qAs*@nyulqqo9 zMo2s7aH68@4J}{Na%Y2E&Y1lwpAVI=Fhkj>=0Qim&-*y!=^i1w#q3B%vq+!SmI`sWC1V{>y5TGPUXP0dT^vZg?)KavV;OY5<8BHR>V zf%X*A0)5?4V|OaBI-1&^P9y`#-dH@Lr*|e;q&M8pWH^54`i&}Ofu%8{D;_m^Sj zgLS9UOsE+n73(pg-F{*3>Sr;gOjI86Oy+ivZ|Vb{&!3z=QJI8;Wb?8$lW|UGF}vpp zw;N~J(S*oJ>Z)mW&vN(U?%C7VOkRnfY|fcYnkYeCRHZt{CZUtFas24?Ggc=qKm!X3 zjj>iKNzm`AEr5wVj6qe*3{2;MmCf5|oG}AI+;(8s+ZByDEU>vEj(&2KnN@K@V~$RE z1OY?Y{4%D>ym=Ubw^!iJqb${SAo(u&9wQ&L_y?pl&NO|!pOV%jweDl21xRDgP8vZg zz{=)4jb2%YiSLzJyF}JRk!3F;jyvohK{&Bx?b%k1aA^0$@^KO`hr(2bvo{K}kQ6uN zsiU8~c%(RB`1aYJnxIMyidzjX$~al)xN&jBy)WY`I~fO$u3_@F zxvs2x4BjHt=rA7zMfuA!fhi#5ffe(4W!9^R_mw=XzVd@^pP}$NSB9(VT0TMT;dV%u zn&URLg)8a`&c3aohIPWWRcMG?*@cP3@T8E^=fP7v6FxB2x7U2cqK&x4p?-TM$WkHXEAs z85-eWtnm;eZe8OZ>I`H81NzhWD275^-1w>}jEuwQqx^?cSLchz6>wouMWxBkXdS5smPedx-%0ygK{CWEao(^6I delta 1458 zcmZ8geP~-%6utAR;lZOC5M?71b=Ed%GDC`OhY{3jX>oD+0X1lAmUNQ(OJ2zpS^ef*ph z^Z)e_8{sQbEYOEdgPgY}GU4R?ay0OXp!W&-cPBq7NBt{;J|t*Azb?lHh&YkBU^N%? z4R##Qf_K|S0&%e-BUY4M{8d}D|B9gZh<*JDfhaF|_*L7%CzH5;fMu8;h1rcRP!x>V zQi=Q7b49K6M^GRR z+SF@W?H8hzY7`ci+T^6ap?er%V%IvsCXQNjDmw6TL6-F4Z+ByYW{r_eUA&JYNm=PfIdJ| zONbu%!9s6dMzm9)*FHnkjfmLecq1SYP&O9tTo*HiE+9NMT2U+5@Kb^YP;!1P!M1C$jn33A4l(xwmFgxoMyY83Em1ia9E$ zbMx8hTxx3X6WLteEM7qaOIGlrVBQwI5cniJX`H{~j=3)UjeG2LMk&ATe$0989}7nK zhP#*U=EpseWEW*_*Hz|J#^r39`Q_gI%$a6ANkod=8)jWf1iWEp&odjCPn~8%N|J@f z+1NNc9A;x-c4(136J|YO=2>LQB9oPA=2+pfcgjhX7Z{O`JCc0HI~X9iN7&u)(^kX7 lAM%>Fm$$sTf_P#(V2Gmu;s^B!8?h7ge~|DucJxE0{{W0~I&}a5 diff --git a/philo_two/obj/ft_strjoin.o b/philo_two/obj/ft_strjoin.o index 66270abc31bda4bbd14af51e746482e35c2063a3..385693ab67b9034d452be1e8870f8ab009fa2e4e 100644 GIT binary patch delta 592 zcmZ9JKS%>H6o-?$B)vO?8nr?}R7CL)f^;fEAr%CR2wDWOlSN9g;vgc3E)HEB9C|*n z4qZB_;3A5sgNRP*;^5*|!Oh7@CpGCk9K7L|_kAzP!AmXj94RH`6(jX8#e?v} delta 574 zcmZ9|JxIeq6bJCTBzO71!9WTI#V>TwrGrB&2&XO<7wgszg5N|DT3Qu!QFIdo!=n^I z3U#V(>LjQ*R#9+J!A&)bOQ#DBlX~JF6RKg*02`^N*tEdC`<_dZ=;hv&)p?<@f z)aQTN3O7=}QRi`X7<^s0le&tXs5MxSx`o<}dJE^e@N1~;s2>&~5v9O25^f!D2l2KM zvWD<2T+lUY+Ez^(PK<<|aR`YvS3CPO3e+p)7UyP`i}8H0u#_w2^1)o82vhu?u0!06 zO>D?Xs`tvuwJ^W)o60H$yMM{l!r8qjv8t>xP3}jDW6D&bWJZ4>+JP)qTo%0qRkM$7 zz>`__N)n>&M=x-*>#%7}!@HHFP0(St(F+)|MN5ov=Zo1q!y4w9tj#=N4j*NfY@uSO WJ&$LZAwlD}Sw^=thfoTJ^Y8-#d|b8w diff --git a/philo_two/obj/logic.o b/philo_two/obj/logic.o index cb434b1ef68e15501fb1547b35e4ef695d7389a4..a748b0919259352e07b752a5632be8465096c6e1 100644 GIT binary patch delta 2784 zcmY*bYiv|S6rOu`@7}vR`(kOKY~4Pf&;l-&XG_7Q7?gqO{D4FfF#Z71nD~nEkr*El12G{cit(990un=riQ@O&JKMr!XTEd3bIzTa zGw06Tw=(+{R=N{s6T)o=EDz5nM(@kit~JM5Kg4345R*rb&QDYgvpl=FXscU|dSw~Y z5>M-x9U7-Ns>{eEt}q_$4-dr4A@!n>N&TSbEBHKqr}VI8iVy+yt1&;ZGUzde4*W5y zW|^5pkEY+y^!ccI0`%XSZqf9AUC7g`^of{C`Z9^7nx3cEdN!sufgTEb-fQ(k z0txjl=+87gT`y%_LWTU9)TM~$c36AAFi{BZ=6-C!QhERUL?!B(&TEgh8uhwAlN^qD z`hecMQ|sw_rYO@|lztZRTwhC4h(RDT)9ZPRjm)0g)i$eDJ!OT}0qdau92Tg$19j@2 zK(Be1p^gM*n$3p#3fg(08tjwi0-?UO8`O&6EVVnhS2ct#n}s12l@HsGjbw)h3q|#$ zyeXV7%PmX{%SC;3+p^H^;WIh_)LdW_b~DT_Gz) znUg%jkdCpCjvGQ2yCHT0lQ=01qi{C6g0BMl&Do(Nz)wM&X+wnGt}1g3Lw*kBOImJm zu`84F+l;_sT*UDAHye4_PD$j3`r>ag1+T{CHd11T!7%~@RF6xx)fbK&( zy5#`mJ|x}j?2$#t>nShp72#u8h3$8~L)Z&fD5A-?QT_+4 zL9lNS#|*D}$^}Q>3;99Ho8ltuhhjN)6Z9bSQRiDMyMTAop-adWka^I)C5~JT*?q{; zxUlboL)5JS5#IoL!WInWON}D@5ZnSrA`5Wr@RI<`?>qk z4c(j>JOk)4Q<5)S7 zp8*VChF-R3+e`*_(YL$@F5U$I)Yp?BXNZ8fh6d3^2Ji-c;Q8BP>ptB7&z$I=?GrLR zn-A?g6MO`G5q%H(KJ-KAo6z~3K6Ezs9RVH}>ga?S@n;~?{5?9Gx;EivWhbtdxfdF^ zJzNuPtQ=A-s7WM*U=@&J0<;&4gj5YEeM_^-Nd1OEd-0@6F&Wy6=Shl3JQ2mo#-k?3 zv)5Cylu7aZ(iF2vis{u97etCjq$$1*r1;9}DOq-;SdN-v-Ql<1tqL8<7oKk1tzJK` z0#dviv=_^i6suQLtZq^~X8rs=sL;>~>d~6c*4dESM|KQlOCy8%+<mj*`=44RWyve|*$$m0b()AQvSR<^sJgRL-? za&8VPJBGFwHV)+nnhHZDH&K<+^*%hB3QbHtOu2Hg=%%3hD0lPK828v<$-#-|P}!c} zg7xr}D&xyzQB;ashc>!%vXI6XJMP7FRn`yY_yM`Dsj_9MtF;Hz=}Aq&-oN-(T)Q@+ znkUx>R>1ApUn)6yM)0&Ylw8Ap7}_qYO)z|P*^5{S!({VO-zl^1MwlP;8&|9&~MFV*e}UD zt+}pgL49l43<$&E1riVCjY@kb!N56HM@fsES* z#9yK`?_2WoG~cNCnC5LG;|2VUoipG)AkHKGCJ;X9<3K;~Fpv*A2;>AgAX-}8oN8Ca zRD1aWXng8Zq|p|kQ?Gt=dD~F0Hq7hl)h{gn1kqmos`o&@&Rwwbuh*Mz)YayO4t26& NlDgE8QnihZ{{uT3mB#=8 literal 7988 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 VLz|FFleYS#X1bZHgj1hW{|`c1^dA5K diff --git a/philo_two/obj/main.o b/philo_two/obj/main.o index dfc0ba2b033eb1a3958041eb763aac4254d7dfb2..fe3a29a167af7a0f80aba30544b5bb06c2dc9509 100644 GIT binary patch delta 498 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 CtV?46 literal 0 HcmV?d00001 diff --git a/philo_two/obj/old_utilc.o b/philo_two/obj/old_utilc.o index dc3a61738072d26d98340bbf4245be6751637678..3cdb288f373b9f80eff61822b3b8c95a51809a7f 100644 GIT binary patch delta 864 zcmZ9KO=uHQ5XaxgzRm8ExY-J+iGqztB_h;AOBBIv5TvvRO^aU`}dY*MV)oNgif@8`{e?KI7`x1raX>J*JmQvO0X^ zVQ}2g8>UkO3L@-yWawc-w>-EhP6uoM;WVs^FxWD5(-ikYR))b_Tgy|1X5cbXH=*S< zL(A|?hS`RpRYPAU8KYhLA+UZr^K66sJZ_Wy(OYsv$6Vvp2-?{v?hKVK6(XDe4nYS-HDaLj1tk+`=oM|Lsfl1 zYQL{@l?745CDs`8%HiDT5v zzD>-s=jhB69x{ifx98C%95;{PDIVoPmj-%)M^UjqQPN^;V59_*SIWneAbX4tS-dO8 zkytS{1wXtuReG83q@Ed_q1y@3dgia7+X&Gjriz9mM1z?snt%{3VbDC}lCR-QvLT!u zm`HW=^Dvt_;x7E!jcpMoQ=PmF>#1!ieGbp}+|7-RD_0f)FzpEnl&g>TnJzVGk;94+)QP&LEfm{1+oCgUA2? delta 852 zcmZ9KO=uHQ5XaxgzD+hJO}56C6ibLoBpUD{rYg9iSTv!EABcq@fzX;rAZZgU)r0n^ zpk$eY(2I!lBE6KJ%)wKk6%RsAdN7Aj@Zuq*hk6p<By$g|w|S%)^`wyq#i||}wo2ot)=OH0IcbDizqFJbFnhY3OC;A9J zNiWeRS|a*A%ou**J#ej@JD_ZvvQsc?d5IT6Bku^~cOu5uV8hBetr%mt?AGRX%qea4sK)kCjp+)lDtLE1g9&ocZBZI|#Bq}XW;F=IFr5q=c?5jX=8ZcJ6U5+YoOs`d%t>V($83U5I# z?7+A1f*2gYl}MUTK{axcx51Aj`Ayh}?C~S8Hu7qs{6IN!GOuDCH9oH<=2faA%j-(W qNw^VB2Of6RVOt)DC()(xnH^i6Ypc=VF(vH0;&wrV80TQedj9~^3xn+d diff --git a/philo_two/obj/parser.o b/philo_two/obj/parser.o index cff51fe1a416ef73f915029548859f86e6681842..9de893331129093e553aec0d0ab9ce7434e2eb95 100644 GIT binary patch delta 2915 zcmZuzYiv|S6rQ_7gsnpY{_&Am5{M)wH3l&zfKfvrn3%{fG@?PlpdvAd@qypDcUJ0SvUkpRzH`nz z&YZb-Pt3jDkZ%e<8DVxiY&i1C$nc}_Xj;F^x&UvNG8P#gsSg(n&5oV@VafaXcxmv- zp(840M00F$xqvr@mYa_DjSBc$4)Ml`v)zt*K*gLba`eMxj2ZF@uMeLR4#QR4+Mt}S z#lxo+omcd_pnP77hgNzWy;9NF z#qy*c56$yCdX-wq1?h1$PHYW0><;C88)>AyoWcfNGVQ7lf2ll9D35`tJm!j*9S%DB zhid0_C64}OnbeGV)2<@k17=`6V>=*esV#V@(E{k9NY`k}IHGy>4PH;|@4s}F$tl)G zzDw@6Ch#rtm^Gz&c6pT@OLAyhtinXx8%mhwhK6O zEJw4*3)ZL6o>bq~bTZZ5o^0z(w{1#7&(4vrdP>|+_a%EeyE5{uCsCBnrutIZbaHb# zl^I}udKY=CQ9WiQ)BSO;7aMX1*wSLgtP%*v0eddyy5H+1Z^ncV zzDtWqnGe-_SM_-}fhe+_4aeCR z8lz@6ot~C!Rg<5g@YMsZNqD1YoR!1)X~6b zbMf%i2dH0y`0aN5lET<_#FC*LIh!Ns443;p#9NK%jzia`c}5`;+C=d#B*kgvOnd-* zig1M`ek|ZgLGfDw-y0Ji*lqvG6`};#_OF~OCINp=u~l{AIjq>Pu^iK;%ojN*c0hHL z*i*n$A7s`!cz=SCUFFtAz>9$TfJv_q!*YKG#`+#z4IXX0X8}Y|TPz-e#L!HOGqDo* z9>R?la~A_xG|zH8#tipln%|lUb{z<9p(h2gR-57Ng8Yo4YB}=`7L=Ksi#(J|WSM0N zdTrRNt_$8x%j}p~T;S(ah~@&WuN2FH?Nr=1RXnC}PMcdNo`6Cpsm+@&(uIJACXoTQ zH!?pVvcPm$+JY8l_Q2Wgvc3g(h+w&O6YzCF^I7*VfJJWuvkJ3Ad;~zLGdr0$4_SpV z%q~j=;nl8V|K>A6=AI7La|z~{xj_61xrW>pGNHq*jqoB%c!2Hj#faDd(&r}=3j}*1 zLIdb-lryswZYB>?)-AW2Om14Zn^J{(TGgB&Kpzu4ai(7Qj7ZL$kHj4`(lG>UxtSrw7jt*$|xUu}d7!{AHm8$Wc24#d zM{<Wp6s)-@Ub~qdVPR(bb)`Gn3Db z^`W!KlZmnoQ!10Ow_F&>-fSVnKBfdrZrC zQQx+%?lJ4_l@CYCWM`yl(iuB7cG4WA`oCYt@@S-iGkG~ut=+yMMRbY?-lRgmbLR|` z-$lx*4kF@&qUhyqw`PBEul9h?xfhI`9$gu|%maFW8>TpJE;HO_r%@ss$2EjYNn2*P z%nn0)&v37|>G~Q|Uw6{bOnur~gZCTkeM1x0EW-z9)9gn-0Ru$Lorb>F2+O8eb!ewi zvdkzqmmA|8HY&?w(V_|F-mz|VJSux*;{&=kZ^Xn^Ot9Fn%wahaTbeVN{*<-R2#DjD z!dZ|9GJu7R)w$WBX^bQ5%#T8GF;=TVVyCsgA=~&xub?CS3#GpUi9d|BZ$QGeb~~g6 zxeXGnwgr-}2dD(V=f1W`$)7O`>6ewHHz9ttZz}zulG~MRSCT#-6!!~82Q=l2r4_tY bj+9mhyFmHD70y?lFTFO7{ullCe-ir(fEKx- delta 2649 zcmZ8jYiv|S6rOwU&fPov=)SsrVeQtoK!FOBM_V4-k^m_PNd+WC)NP?lx412}-BmC) zYkZ(Y!7W3gB;q3|KL8VACBYICeuzARhUgzOXe3bs2|oa_ArZvy+&e4a&E7fZeCM1w zGv}O{ySJK-&B?cg*GHKByvH57J~FZ@9&I-6p)RmD%NUD{d^#&!P%Luv?7SrxY7->a zYC_wT&zHKR3&|F(HPmQ2(hthvtlXisR&uu^u2Vkye2)BfIb$yQyEZHQw8ud-<@Z-W zPSNAxXB3=K@OVJJsK-O!E4Ws{o8=k3H9Y=5bXQPT81Zn0*Rg6;3;jGOHv?Ybci;{+ z$8TXdX2e79E4WUrWVRHp*2>dGj#Z~J?kr}E_Hq~-Fl5p-D?B;isPf9RidP&{ z@P4)Pj;N#mx?JjfZv8pJ+FqQ_Tr4|u`(Jp>KuX=U(Di6F)$vm~>BIyB` z{{fl|TALnj1AK&CChe&uw~6dna^XrfX#38E)8rm&qP%0BukY>8uPWfC+F*<*jU zZ$ol0v1LmMxmsov z#l2qa#tg7!XgPNYh*31pJ0F-8(TpOm*Aavtw#y6f6aunJ&Y#~EP=|kjZ zD_#0Xr@gHC6admwUyyDAIWqnZ4K7p1s@#4I??Toew)TOv>tV4UlnnJ^CdNQ_!95} zX70T(_y$p2Rqju~ehb#v%6|somU#q-`#1*5rXI{$D?x*Lqj(b3o_aPDN$^)mKgVL` zB`|IZlmNr0n%7CbjiC>(KEuj_tkbJK!=U@I4!uTWo{@r3t7(E(aga21mRMR?>BJzV zCFg8&Qkm!|C??0m69vA$RwTgNshBcZqze4h8KNINl|`S{EVdQw8`{Ln;O%`p+AiJ% zzY=BDr*|;^8dl+UxsL*)bh@kDCv?O=3f_F)JPFu)8a#`cJ>n-Yv}!ZO#IK-#LTmO~ zq879f6PlZY%)AA`x(02T*&_T9>PRz>iBj-0iJxzYO7OP#0(eXT=<}0`6$M&Bf*Y1% zyjI0{1MEyKM7N>kHc4mF%F#=!7qugXeXkLq?r7>3yw1H&JRDia)pY2ezTxewLj!Lt zhP(!Ew>%K68T~OhTgy?Y$&|{E!$}YAo*>FfiH$JY5ka&)WktP15T!(2?vyHmC~wM& z4g^8eE6R!v13`2?BItE`=$sHn2SKc^K@#5XlHtmA!iZ*G-;_^)@_fnrS4* zxNaJi>$sNX>?^K&tm)hjW7EuHtj7e^<}2J-$E)O-vT42r=3{)e12jslJnE}Ax8H9u zDgFU3Sq-eLIk1Hxas))(ccyCo)!J62=-;bpt diff --git a/philo_two/obj/prepare_simulation.o b/philo_two/obj/prepare_simulation.o index 260d1bcf6640bc8ed82542ec8934c91550e18f85..0c515c59f6d2070a4c467f69f9aace6d06ce299b 100644 GIT binary patch delta 1517 zcmZ8gUuct86uPmM;=idj2}*B4h<;#pg-EAKSqbu+8* zZ_qR9GU#*jt{WbMuW|~#jytVHAM0Xe5K^*I6}eKX$`_SjXH`A%VqB$9)%hcvYU#+| zYUywkx1t`uP)p7IsHmk2oBWZ|Myvd}(y~s+(5ipc&z@L%Aj~!qC&d9BQ5MFi9~_LcZp3>3P?GJla4~#< zNGW9UD1JOcD{ZwY2%U6*xiRYQw+Qni-Xq>Cp%CdT5?S=}Az+=7cpUThM#wv&Dm{c5 zd!wjvO3O2!=?ve7xTNL6b-`RBM>0)E@l&kxxM_Mqq}pnhwk;OFZfRN<<+vuW0ZmT{ zM_0|!wZ#$PW6qt&&x?}5Ewc=6Dcf&0#yYVc;HK#X;Towm9x)yH6`_xvHSRL4-{tTn ze%E zdpiaszT#e`dH%L1M8D>MIhD>VeBDY2fGHX8d`@yVj4RGM2UfI+Zz1$6!}*1eQ-1R7g7cvwhU_E*1%DQ zW_Ac(LLsa{vj#n7XhFd~3++$9-Vd)$;+X^3TbaOw1_3-r15X4;(bybF^2`!YdE2^YFuxzkT!dbM!jjM;~%sW=3G!Fl3ak(`2A*H{f~M zum_tAyTNbKxa&ZJfv91~7d#>*T?b9JVzOWI)5v~jvfU=T%s)exH5$-j%RC?_UA-n7 zlZ@z9ogElWP(l=*(3`Ev;6uegb0??fv$?0|7Ut%&GpG1aLr3J9dL*BlomrTgIesF0chb~sVIhxfzB=9TJuOCU zd7OBH-UrX2y@i+FPYG;TpqoB3n$^MUWM5mp&(D6e^8H<`84K!D2g0lk{gi0X7G+1!>W$k6*#!D} z{f-oS-13X}riqk6B#+@o5HEGw#P82ZV=ReQR}T=Tq2DX^bwDA~A_7^|N~6R2B(a=k z4C-eRKk2wgvFkZbX>;il9pP?>OWMqTDi8=gDYiVJiwIfPWoshju1nlIBpzMTvSlhB z!vb`i3&rlbV)qV3x2|Xw>kxf3MO;Lj(xc{V@g1^5W+PK}Lzi6^vUI&sdWYgc zp}@CgKNnf*A}>3qhlN5sa@_o9iBSdq6|Fd8M*^QUu^3F?E;E0vI_%m{X^a;&jaK0o)2h>N4z1r#1DHz()HVX+1o=E{+c)BSpEHues1u6ULXCd z`m^^or5^sRKT1F5je!xTvIvbV0lPGi`axzn{$yaaXMl~sA*Mk_g8>c3DiF~?E`y>$ zD>@p4Dqv$Hys0f+9PNi#0>TN9%3#-^T?03YC8n_g5G4k-T_3^SJ>>U`C!v+e*GL5d z*dnOcbX35HvJND|8u&EWUx7z7u)heCKY%>}dsr4bCU8K-4em+sV`4Y9()_R&XVKUi VNOEBVsN6ImF+wS+{?w*P{{hUC6%YUb diff --git a/philo_two/obj/time.o b/philo_two/obj/time.o index 294aaf7e3eeb9da3ca412512d873ecd9403318f1..264c425280d4ccb9d84994af6cc6b88619d61a0c 100644 GIT binary patch delta 908 zcmZ9KJ!n%=6oBt}e|hgE>GNrgzFKKhBB4~RbqNvmbr6-dkQOAiOT@*-$%;!HO6p)Y zq2Ux2anQ+4Dsj-kLcyhr2qHufMEt=*h3eA5#dF?0U3%c2pYNT&dz0n-LVjs9^n8`b zMO$01HC2I2t*0^cw!U5nCk%}rX``003~}^R=w;COxU21BY(XhJW9djfs=N3J;_$4{ zCF!(?gGL;_6Iu|O!`npv?xLq~ooG&01ZiBu$c)1SjxMc8hbwrU=ry4WLZ9PnGmd`k zq9-y+nUwJsL#q_lQ#$#T)U4o)6-WJYw+)$E&+5gVoO=K@ zyy>4y-=f_K`8JPwN6@KO5S z6w@W{v;zAy-}}lm%QO#{ky?D24m}C4kmi|6Zrp^F?tA;qsIcv{4RH`;H^o3hZvBxUimLL5a`mamf3HSDakU}23s#a`t#c_su_ zGJk{2cnniKOqFp?srQqY=oDnh>wFyn?s3x>p2SS?nNogpD1V*am(@w$uu<% zbJCrPVXDZGCoC83duZrsi@*ci+JgN7RktzdY@((NBP*P5XpfTJx5pCJI9flDs7b4Y zrjA?7>#l^BT|O92gux1KTH!;W9tk}m!i%B(j(vcb^L~-qVVm%fol%6YLx}Fch)hCs zD*r%qI3c5O%~^wIiA=J`d8!7?X=P8U9`m@e&1v%l{7ww?t*ZV&<;-j9 c(0R4@j>?WHZA=OCtumce815QuPj%(xe`#HWU;qFB diff --git a/philo_two/obj/utilc.o b/philo_two/obj/utilc.o index a841bae91ecc1947f160b455770ee003e2c6bc25..677a3e13f66a88f45b218549fe1444a4fe5ecc12 100644 GIT binary patch delta 2744 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 diff --git a/philo_two/obj/utilc2.o b/philo_two/obj/utilc2.o new file mode 100644 index 0000000000000000000000000000000000000000..d0dc65c6f0e11983e1fe1d9f473bcd8c0db3c57e GIT binary patch literal 2536 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 J*hV$&e*wVoclZDR delta 5533 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 Rz5|LX@mDHq@Y`Ga{tMUdFn$04 diff --git a/philo_two/srcs/ft_exit.c b/philo_two/srcs/ft_exit.c new file mode 100644 index 0000000..c911cd4 --- /dev/null +++ b/philo_two/srcs/ft_exit.c @@ -0,0 +1,30 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_exit.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:16:23 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:23:12 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../includes/philo_header.h" + +int ft_exit(t_all *all, int ret) +{ + int i; + + i = 0; + while (i < all->nbr_phils) + { + sem_close(all->data_philo->philors[i].eat_sem); + sem_close(&all->data_philo->sems[i]); + i++; + } + free(all->data_philo->philors); + free(all->data_philo); + free(all); + return (ret); +} diff --git a/philo_two/srcs/ft_itoa.c b/philo_two/srcs/ft_itoa.c index d2161e4..7d6c096 100644 --- a/philo_two/srcs/ft_itoa.c +++ b/philo_two/srcs/ft_itoa.c @@ -1,6 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_itoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:37 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:38 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" -static int nbleng(unsigned int n) +static int nbleng(unsigned int n) { unsigned int i; @@ -13,18 +25,31 @@ static int nbleng(unsigned int n) return (i + 1); } -char *ft_itoa(int n) +int ft_itoa_tern(int n) +{ + if (n < 0) + return (n * -1); + return (n); +} + +int ft_itoa_tern2(int n) +{ + if (n < 0) + return (1); + return (0); +} + +char *ft_itoa(int n) { char *dst; unsigned int leng; unsigned int nbr; unsigned int i; - nbr = (n < 0 ? -n : n); + nbr = ft_itoa_tern(n); leng = nbleng(nbr); i = 0; - if (!(dst = (char *)malloc(sizeof(char) * leng + 1 + (n < 0 ? 1 : 0)))) - return (NULL); + dst = (char *)malloc(sizeof(char) * leng + 1 + ft_itoa_tern2(n)); if (n < 0) { dst[i] = '-'; diff --git a/philo_two/srcs/ft_strjoin.c b/philo_two/srcs/ft_strjoin.c index b1208f0..ee0aed5 100644 --- a/philo_two/srcs/ft_strjoin.c +++ b/philo_two/srcs/ft_strjoin.c @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strjoin.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:40 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:41 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" char *ft_strjoin(char const *s1, char const *s2) @@ -8,14 +20,14 @@ char *ft_strjoin(char const *s1, char const *s2) if (s1 && s2) { - len1 = ft_strlen((char*)s1); - len2 = ft_strlen((char*)s2); + len1 = ft_strlen((char *)s1); + len2 = ft_strlen((char *)s2); new = malloc(sizeof(char *) * len1 + len2 + 1); if (new) { ft_strlcpy(new, s1, len1 + 1); ft_strlcat(new, s2, len1 + len2 + 1); - return (void *)(new); + return ((void *)(new)); } } return (0); diff --git a/philo_two/srcs/logic.c b/philo_two/srcs/logic.c index d3a1634..ab461ce 100644 --- a/philo_two/srcs/logic.c +++ b/philo_two/srcs/logic.c @@ -1,94 +1,70 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* logic.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:43 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:44 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" -void *run_trhead(t_philo *philo) +void *run_trhead(t_philo *philo) { - while(philo->all_struct->smert != 42) + while (philo->all_struct->smert != 42) { if (philo->all_struct->opt) { - if (philo->count_eat == philo->all_struct->number_of_times_each_philosopher_must_eat) + if (philo->count_eat == philo->all_struct->etarate_meal) philo->all_struct->smert = 42; } cycle(philo); } - return(NULL); + return (NULL); } void take_forks(t_philo *philo) { - t_all *all; + t_all *all; + all = philo->all_struct; sem_wait(all->data_philo->sems); messages(philo->all_struct, philo, "has taken a fork"); sem_wait(all->data_philo->sems); messages(philo->all_struct, philo, "has taken a fork"); } + void eating(t_philo *philo) { - t_all *all; + t_all *all; + all = philo->all_struct; sem_wait(philo->eat_sem); messages(philo->all_struct, philo, "eating"); - philo->last_eat = ft_get_time() - philo->all_struct->start_time; + philo->last_eat = ft_get_time() - philo->all_struct->start_time; philo->count_eat++; ft_msleep(philo->all_struct->time_to_eat); sem_post(all->data_philo->sems); sem_post(all->data_philo->sems); sem_post(philo->eat_sem); } + void sleeping(t_philo *philo) { - t_all *all; + t_all *all; + all = philo->all_struct; messages(philo->all_struct, philo, "sleeping"); ft_msleep(philo->all_struct->time_to_sleep); } -void cycle(t_philo *philo) +void cycle(t_philo *philo) { messages(philo->all_struct, philo, "thinking"); take_forks(philo); eating(philo); sleeping(philo); } - -int run_observer(t_all *all) -{ - int i; - i = 0; - time_t time_eat; - while(1) - { - i = 0; - - while(i < all->number_of_philosophers) - { - - if (all->smert != 42) - { - time_eat = (ft_get_time() - all->start_time) - all->data_philo->philors[i].last_eat; - if (time_eat > all->time_to_die) - { - printf("%ld %d died\n", ft_get_time() - all->start_time, i + 1); - all->smert = 42; - return(2); - } - } - else - return(2); - i++; - } - ft_msleep(1); - } - return (0); -} - -int runner(t_all *all) -{ - prepare_resources(all); - all->start_time = ft_get_time(); - run_all_phils(all); - if (!run_observer(all)) - return(0); - return(1); -} diff --git a/philo_two/srcs/main.c b/philo_two/srcs/main.c index 01b6bd3..419334a 100644 --- a/philo_two/srcs/main.c +++ b/philo_two/srcs/main.c @@ -1,12 +1,24 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:46 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:46 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" -int main(int argc, char **argv) +int main(int argc, char **argv) { if (parse_and_check_values(argv, argc) == 2) - return(0); + return (0); else { return (1); } - return(0); + return (0); } diff --git a/philo_two/srcs/messages.c b/philo_two/srcs/messages.c index 68e3136..4d9baf8 100644 --- a/philo_two/srcs/messages.c +++ b/philo_two/srcs/messages.c @@ -1,8 +1,20 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* messages.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:48 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:49 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" void messages(t_all *all, t_philo *philo, char *str) { - time_t timestemp; + time_t timestemp; timestemp = ft_get_time() - all->start_time; if (philo->all_struct->smert != 42) diff --git a/philo_two/srcs/observer.c b/philo_two/srcs/observer.c new file mode 100644 index 0000000..860310d --- /dev/null +++ b/philo_two/srcs/observer.c @@ -0,0 +1,58 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* observer.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:50 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:22:45 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../includes/philo_header.h" + +int run_observer_return(t_all *all, int i) +{ + printf("%ld %d died\n", \ + ft_get_time() - all->start_time, i + 1); + all->smert = 42; + return (2); +} + +int run_observer(t_all *all) +{ + int i; + time_t time_eat; + + i = 0; + while (1) + { + i = 0; + while (i < all->nbr_phils) + { + if (all->smert != 42) + { + time_eat = (ft_get_time() - \ + all->start_time) - all->data_philo->philors[i].last_eat; + if (time_eat > all->time_to_die) + return (run_observer_return(all, i)); + } + else + return (ft_exit(all, 2)); + i++; + } + ft_msleep(1); + } + return (0); +} + +int runner(t_all *all) +{ + prepare_resources(all); + all->start_time = ft_get_time(); + run_all_phils(all); + if (!run_observer(all)) + return (0); + return (1); +} diff --git a/philo_two/srcs/old_utilc.c b/philo_two/srcs/old_utilc.c index 3d505cb..7eee3d0 100644 --- a/philo_two/srcs/old_utilc.c +++ b/philo_two/srcs/old_utilc.c @@ -1,6 +1,18 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* old_utilc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:53 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:54 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" -int check_f(char ch) +int check_f(char ch) { if (ch == '\t' || ch == '\n' || ch == ' ' || \ ch == '\v' || ch == '\f' || ch == '\r') @@ -9,7 +21,7 @@ int check_f(char ch) return (0); } -int ft_atoi(const char *str) +int ft_atoi(const char *str) { int i; unsigned long int result; diff --git a/philo_two/srcs/parser.c b/philo_two/srcs/parser.c index 55f6723..3369c66 100644 --- a/philo_two/srcs/parser.c +++ b/philo_two/srcs/parser.c @@ -1,68 +1,85 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* parser.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:56 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:56 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" -int check_param(t_all *all, int optional) +int check_param(t_all *all, int optional) { if (optional) { - if (all->number_of_philosophers <= 0) - return(1); + if (all->nbr_phils <= 0) + return (1); if (all->time_to_die <= 0) - return(1); + return (1); if (all->time_to_eat <= 0) - return(1); + return (1); if (all->time_to_sleep <= 0) - return(1); - if (all->number_of_times_each_philosopher_must_eat <= 0) - return(1); + return (1); + if (all->etarate_meal <= 0) + return (1); } else { - if (all->number_of_philosophers <= 0) - return(1); + if (all->nbr_phils <= 0) + return (1); if (all->time_to_die <= 0) - return(1); + return (1); if (all->time_to_eat <= 0) - return(1); + return (1); if (all->time_to_sleep <= 0) - return(1); + return (1); } return (0); } -int parse_param(t_all *all, int optional, char **argv) +int parse_param(t_all *all, int optional, char **argv) { all->smert = 0; if (optional) { - all->number_of_philosophers = ft_atoi(argv[1]); + all->nbr_phils = ft_atoi(argv[1]); all->time_to_die = ft_atoi(argv[2]); all->time_to_eat = ft_atoi(argv[3]); all->time_to_sleep = ft_atoi(argv[4]); - all->number_of_times_each_philosopher_must_eat = ft_atoi(argv[5]); + all->etarate_meal = ft_atoi(argv[5]); all->opt = 1; return (check_param(all, 1)); } else { - all->number_of_philosophers = ft_atoi(argv[1]); + all->nbr_phils = ft_atoi(argv[1]); all->time_to_die = ft_atoi(argv[2]); all->time_to_eat = ft_atoi(argv[3]); all->time_to_sleep = ft_atoi(argv[4]); - all->number_of_times_each_philosopher_must_eat = 0; + all->etarate_meal = 0; all->opt = 0; return (check_param(all, 0)); } } -int parse_and_check_values(char **argv, int quantity) +static void parse_and_check_part2(int quantity, int *bool) +{ + if (quantity == 5) + *bool = 0; + if (quantity == 6) + *bool = 1; +} + +int parse_and_check_values(char **argv, int quantity) { t_all *all; int bool; - if (quantity == 5) - bool = 0; - if (quantity == 6) - bool = 1; + parse_and_check_part2(quantity, &bool); all = structalloc_and_bzero(); if (quantity == 5 || quantity == 6) { @@ -70,7 +87,7 @@ int parse_and_check_values(char **argv, int quantity) { if (runner(all) == 2) return (2); - return(1); + return (1); } else { @@ -82,6 +99,6 @@ int parse_and_check_values(char **argv, int quantity) { printf("error please use argument 5 (optional) or 4 (standart)\n"); free(all); - return(0); + return (0); } } diff --git a/philo_two/srcs/prepare_simulation.c b/philo_two/srcs/prepare_simulation.c index bc59d2b..87a4dff 100644 --- a/philo_two/srcs/prepare_simulation.c +++ b/philo_two/srcs/prepare_simulation.c @@ -1,11 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* prepare_simulation.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:12:58 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:12:59 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" -int check_all_run(t_all *all) +int check_all_run(t_all *all) { - int i; + int i; i = 0; - while (i < all->number_of_philosophers) + while (i < all->nbr_phils) { if (all->data_philo->philors[i].worked) { @@ -17,10 +29,10 @@ int check_all_run(t_all *all) void run_simulation(t_all *all) { - int i; + int i; i = 0; - while (i < all->number_of_philosophers) + while (i < all->nbr_phils) { if (!all->data_philo->philors[i].can_run_simulation) { @@ -35,7 +47,7 @@ void get_data_f_philo(t_all *all) int i; i = 0; - while (i < all->number_of_philosophers) + while (i < all->nbr_phils) { all->data_philo->philors[i].died = 0; all->data_philo->philors[i].nbr_philo = i; @@ -44,20 +56,21 @@ void get_data_f_philo(t_all *all) all->data_philo->philors[i].all_struct = all; all->data_philo->philors[i].is_eat = 0; all->data_philo->philors[i].name = sem_set_name("philo", i); - all->data_philo->philors[i].eat_sem = reopen_sem(all->data_philo->philors[i].name, 1); + all->data_philo->philors[i].eat_sem = \ + reopen_sem(all->data_philo->philors[i].name, 1); i++; } } -int prepare_resources(t_all *all) +int prepare_resources(t_all *all) { - int i; + int i; i = 0; all->data_philo = ft_calloc(sizeof(t_philo_data), 1); - all->data_philo->sems = reopen_sem(_SEM_NAME_FORKS, all->number_of_philosophers); + all->data_philo->sems = reopen_sem(_SEM_NAME_FORKS, all->nbr_phils); all->write = reopen_sem(_SEM_WRITE_LOCK, 1); - all->data_philo->philors = (t_philo *)ft_calloc(all->number_of_philosophers \ + all->data_philo->philors = (t_philo *)ft_calloc(all->nbr_phils \ + 1, sizeof(t_philo)); get_data_f_philo(all); return (0); @@ -69,11 +82,11 @@ void run_all_phils(t_all *all) int i; i = 0; - while (i < all->number_of_philosophers) + while (i < all->nbr_phils) { - philo = (void*)(&all->data_philo->philors[i]); + philo = (void *)(&all->data_philo->philors[i]); if (pthread_create(&all->data_philo->philors[i].thread, NULL, \ - (void*)run_trhead, philo) == -1) + (void *)run_trhead, philo) == -1) printf("I can't create a thread t%d\n", i); else pthread_detach(all->data_philo->philors[i].thread); diff --git a/philo_two/srcs/time.c b/philo_two/srcs/time.c index 1b74927..1c9d56e 100644 --- a/philo_two/srcs/time.c +++ b/philo_two/srcs/time.c @@ -1,3 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* time.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:13:01 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:13:01 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" time_t ft_get_time(void) diff --git a/philo_two/srcs/utilc.c b/philo_two/srcs/utilc.c index a61df6c..d7a4202 100644 --- a/philo_two/srcs/utilc.c +++ b/philo_two/srcs/utilc.c @@ -1,15 +1,27 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* utilc.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/20 12:13:03 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:13:04 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + #include "../includes/philo_header.h" t_all *structalloc_and_bzero(void) { - t_all *all; + t_all *all; all = ft_calloc(sizeof(t_all), 1); - all->number_of_philosophers = -1; + all->nbr_phils = -1; all->time_to_die = -1; all->time_to_eat = -1; all->time_to_sleep = -1; - all->number_of_times_each_philosopher_must_eat = -1; + all->etarate_meal = -1; return (all); } @@ -64,10 +76,9 @@ size_t ft_strlcat(char *dst, const char *src, size_t size) return (len); } - int ft_strlen(char *str) { - int i; + int i; i = 0; while (str[i]) @@ -85,9 +96,3 @@ char *sem_set_name(char *str, int i) free(temp_nbr); return (returnstr); } - -sem_t *reopen_sem(const char *name, int value) -{ - sem_unlink(name); - return (sem_open(name, O_RDWR | O_CREAT, S_IRWXU, value)); -} diff --git a/philo_two/srcs/utilc2.c b/philo_two/srcs/utilc2.c new file mode 100644 index 0000000..30c6870 --- /dev/null +++ b/philo_two/srcs/utilc2.c @@ -0,0 +1,19 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* utilc2.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: mdenys +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2021/05/19 17:34:52 by mdenys #+# #+# */ +/* Updated: 2021/05/20 12:13:07 by mdenys ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "../includes/philo_header.h" + +sem_t *reopen_sem(const char *name, int value) +{ + sem_unlink(name); + return (sem_open(name, O_RDWR | O_CREAT, S_IRWXU, value)); +}