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;