diff --git a/lock b/lock index bc9a678b8e3d2de35a89d7624d4a5d68685c1717..a8270e9c6e6d9e2f21521df53f66143438cf6646 100755 Binary files a/lock and b/lock differ diff --git a/pa3.c b/pa3.c index 430014ac7470e6aeb11454eb27907ecd25737b9a..cc50af54a35349b4c3b489158a1c62d60ccbe61a 100644 --- a/pa3.c +++ b/pa3.c @@ -204,8 +204,7 @@ struct mutex full; void enqueue_into_ringbuffer(int value){ acquire_mutex(&full); acquire_mutex(&mutexs); - ringbuffer.slots[ringbuffer.in]=value; - ringbuffer.in=(ringbuffer.in+1)%ringbuffer.nr_slots; + ringbuffer.slots[(ringbuffer.in++)%ringbuffer.nr_slots]=value; release_mutex(&mutexs); release_mutex(&empty); } @@ -224,8 +223,7 @@ int dequeue_from_ringbuffer(void) { acquire_mutex(&empty); acquire_mutex(&mutexs); - int data=ringbuffer.slots[ringbuffer.out]; - ringbuffer.out=(ringbuffer.out + 1)%ringbuffer.nr_slots; + int data=ringbuffer.slots[(ringbuffer.out++)%ringbuffer.nr_slots]; release_mutex(&mutexs); release_mutex(&full); return data;