From 282a9a0f772a489de8cacb5a314ad81a692d47d9 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 27 Oct 2021 13:50:32 +0200 Subject: [PATCH] :tada --- A2/Makefile | 3 +-- A2/job_queue.c | 14 +++++--------- A2/job_queue.h | 2 +- A2/testfile | Bin 20544 -> 20536 bytes A2/testfile.c | 20 ++++++++++++++------ 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/A2/Makefile b/A2/Makefile index 0211b6d..e10c2f4 100644 --- a/A2/Makefile +++ b/A2/Makefile @@ -1,6 +1,5 @@ CC=gcc -#CFLAGS=-g -Wall -Wextra -pedantic -std=gnu99 -pthread -CFLAGS=-g -pthread +CFLAGS=-g -Wall -Wextra -pedantic -std=gnu99 -pthread EXAMPLES=fibs fauxgrep fauxgrep-mt fhistogram fhistogram-mt .PHONY: all test clean ../src.zip diff --git a/A2/job_queue.c b/A2/job_queue.c index 5f7d4f5..19a4f24 100644 --- a/A2/job_queue.c +++ b/A2/job_queue.c @@ -1,6 +1,7 @@ #include #include #include +#include #include "job_queue.h" @@ -17,7 +18,7 @@ int job_queue_init(struct job_queue *job_queue, int capacity) { job_queue->capacity = capacity; job_queue->size = 0; - job_queue->jobs = malloc(capacity); + job_queue->jobs = malloc(sizeof(void*) * capacity); pthread_mutex_unlock(&queue_operation); pthread_mutex_unlock(&queue_push); @@ -26,15 +27,10 @@ int job_queue_init(struct job_queue *job_queue, int capacity) { } int job_queue_destroy(struct job_queue *job_queue) { - printf("esauc\n"); pthread_mutex_lock(&queue_destroy); pthread_mutex_lock(&queue_operation); - printf("esauc\n"); - //free(job_queue->jobs); - printf("esauc\n"); - //free(job_queue); - printf("esauc\n"); + free(job_queue->jobs); pthread_mutex_unlock(&queue_push); pthread_mutex_unlock(&queue_pop); @@ -47,7 +43,7 @@ int job_queue_push(struct job_queue *job_queue, void *data) { pthread_mutex_lock(&queue_push); pthread_mutex_lock(&queue_operation); - (&job_queue->jobs)[job_queue->size] = data; + job_queue->jobs[job_queue->size] = data; job_queue->size = job_queue->size + 1; if (job_queue->size != job_queue->capacity) { @@ -74,7 +70,7 @@ int job_queue_pop(struct job_queue *job_queue, void **data) { } job_queue->size = job_queue->size - 1; - *data = (&job_queue->jobs)[job_queue->size]; + *data = job_queue->jobs[job_queue->size]; if (job_queue->size == 0) { pthread_mutex_unlock(&queue_destroy); diff --git a/A2/job_queue.h b/A2/job_queue.h index a20275d..d28491e 100644 --- a/A2/job_queue.h +++ b/A2/job_queue.h @@ -6,7 +6,7 @@ struct job_queue { int capacity; int size; - void* jobs; + void** jobs; }; // Initialise a job queue with the given capacity. The queue starts out diff --git a/A2/testfile b/A2/testfile index 3cb9c7f16b67fae1b543b1f7b6acb354de70d78c..c0911b9ef6f1637f270d1d3e80177c44e6934215 100755 GIT binary patch delta 4233 zcmZ8k3vg7`89wLUJ-hd2caz;@lT8rFOC{}wP-(PMEgH)x6`c`U>x5c6poC^@r%46JRKe}{-+MMf&d&Y+ z^L_v0ywAPc*TYZr@XkVir;k}BVkeZ?S59 zafh7e2=Mo$AAFCakZ-m4vyMXXLu4+K$F;lzVyoOH_9dAHMu#Nru%re}h2!@$G>xbP zPhwoFNj|TlPKCq!1!y&57HDntQm!+Kv;DPE|NeT4V$84=+u>(S?r{c+s!^fR6tUE( zLz6u2oWh0t&>56}cY3_TVcYJ6GNsoQlpdEyR=bvQm)z?Lad$5-c-T1L>y$md$I*?Q1jB7jlYsP}WmQ!@tGypLw5j`^WRY$_oF) z$+v-GiRsO;-SxjkD2t^A+Pty$ddic|?|~d#mrkeO6xZYyep7j}(>u(i*_X6uVEu1b1&A zVTlT4U8|g4ww?Z>oPI6)0_D72UJ6Vuzf-v^BNucPeZncoLGVY)yG~BaA9v4d3I**{ z)e0Jb)*gH7ROgkPiC;v&xu~Q5;R?p0%j2o{qs{TuXVGQR)V1bV$JAAz?_E@R9XrSv z+}wLOe{GiR(|iX?jOF|meaCH^OzBDK=xW03sI!1GCl_t5ey3$Okjtt>l z5FCeHfxG-DTE|47Jf3SQ_D>Dwg5>qT(Ay`8?H)H z4i^q6%Q84O78BN7G=-cyms&{t4a)5ht()2qBHC=*awre#N#ZsWXSirR#Sb97c$iOf z8gD>5&q27%4a7NU_wH;IwAB$+(Wi6@n}y% zWHa55_Sr;Y14wK|Xq1rYYaj~AFm=>GO)&iuL^c`j9yJhRt}76ZTeNI)`xe<~R#;9k z1a}JZ89Sl8+wn+}xeBO@T33^!MGZ~sia6FW(;BAMHP5k@Ww|M<)&<$F+w1iK2(PtX z&!I-^_4UF6p!@`nLF=X4>!sQ2m2EGDW-mn&nx^4=vI~^4ji{MA)y-81tZ)<<)1dhSFgTKhuBa8c zoKTVPK>!Ee1iNFLWidFtPaWeei-&)YK#67X@o5xOWOur?$9-$(p&jz38a!`L27nVR>0Xcx7> z-1Cv$m9Klqw3r$LXw7>E09{(8YXCNJ!{}GnKC4w&Vxi5{SxiI6WhI)k3^7Ao4B?u?uX5t_OW(KxAJQ6L*O~r?_2itexj7NQm2aiShEq z+UeyRH?Lj&NMe0rJ$tP6`|DS?u~B06md#t(cUxLF$-25W*Zd{TC39#bvo~p{)S-Du=RSj=F<}OkQ(mWY8h>qkN-ibhOHcL!SGgY$S1;+ z_)GFgxR{@nuZP3&53w6caA;$Zuj8rK3f>2P#Tb4T_*^ZA_0vhXp#)`1B#1vv=fXjJ zA3;t#3{O8RVml(XTZQsIMj6n%%p7O7!bysn@PTS~Y<~v9m(ZWBX`fSGY=7KTit#LjHULknxn zH43fiJr55alckG8W@hDMa^>PMUm*`I4vQ7l2*V%mJUP6$f^U>XOTy+E;!y6CElX;+ zQyv0WHQVOil^2)PnAdA<^qeeRTEm}}E0>1N=jm{uRLCPs(Z#!L^tn8;r1(Hnq4{p3 KO>97d;{OB27oq?F delta 4186 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 diff --git a/A2/testfile.c b/A2/testfile.c index 341a6c7..6643739 100644 --- a/A2/testfile.c +++ b/A2/testfile.c @@ -5,12 +5,20 @@ int main() { struct job_queue q; - int b = 5; + int a; + int c; + void* b = malloc(1); job_queue_init(&q, 64); - job_queue_push(&q, &b); - void* a = malloc(1); - job_queue_pop(&q, &a); - printf("%i\n",*((int *) a)); - printf("esauc\n"); + + a = 1; + job_queue_push(&q, &a); + c = 2; + job_queue_push(&q, &c); + + job_queue_pop(&q, &b); + printf("%i\n",*((int *) b)); + job_queue_pop(&q, &b); + printf("%i\n",*((int *) b)); + job_queue_destroy(&q); } \ No newline at end of file