From b699a736cc04e74327e06eba7759d1f4dca8d788 Mon Sep 17 00:00:00 2001 From: ginger88895 Date: Wed, 3 Apr 2019 00:14:39 +0800 Subject: [PATCH] Finished Part 4 with naive testing --- proj1/dump | 3501 +++++++++++++++++ proj1/nachos/threads/Communicator.class | Bin 461 -> 1440 bytes proj1/nachos/threads/KThread$1.class | Bin 601 -> 601 bytes proj1/nachos/threads/KThread$2.class | Bin 528 -> 528 bytes proj1/nachos/threads/KThread$AlarmTest.class | Bin 1525 -> 1525 bytes proj1/nachos/threads/KThread$ComTest.class | Bin 0 -> 1648 bytes .../threads/KThread$Condition2Test.class | Bin 1771 -> 1771 bytes proj1/nachos/threads/KThread$PingTest.class | Bin 1217 -> 1217 bytes proj1/nachos/threads/KThread.class | Bin 6867 -> 7020 bytes threads/Communicator.java | 58 +- threads/KThread.java | 46 + 11 files changed, 3600 insertions(+), 5 deletions(-) create mode 100644 proj1/dump create mode 100644 proj1/nachos/threads/KThread$ComTest.class diff --git a/proj1/dump b/proj1/dump new file mode 100644 index 0000000..8b8a91f --- /dev/null +++ b/proj1/dump @@ -0,0 +1,3501 @@ +nachos 5.0j initializing... config interrupt timer user-check grader +Thread 1 speaking: 12 +Thread 2 speaking: 3 +Thread 3 speaking: 22 +Thread 4 speaking: 80 +Thread 5 speaking: 64 +Thread 6 speaking: 37 +Thread 7 speaking: 26 +Thread 8 speaking: 72 +Thread 9 speaking: 71 +Thread 10 speaking: 20 +Thread 11 speaking: 35 +Thread 12 speaking: 75 +Thread 13 speaking: 3 +Thread 14 speaking: 79 +Thread 15 speaking: 10 +Thread 16 speaking: 46 +Thread 17 speaking: 27 +Thread 18 speaking: 63 +Thread 19 speaking: 58 +Thread 20 speaking: 30 +Thread 21 speaking: 42 +Thread 22 speaking: 99 +Thread 23 speaking: 57 +Thread 24 speaking: 38 +Thread 25 listening +Thread 26 listening +Thread 27 listening +Thread 28 listening +Thread 29 listening +Thread 30 listening +Thread 31 listening +Thread 32 listening +Thread 33 listening +Thread 34 listening +Thread 35 listening +Thread 36 listening +Thread 37 listening +Thread 38 listening +Thread 39 listening +Thread 40 listening +Thread 41 listening +Thread 42 listening +Thread 43 listening +Thread 44 listening +Thread 45 listening +Thread 46 listening +Thread 47 listening +Thread 48 listening +Thread 0 speaking: 54 +Thread 49 listening +Thread 1 finished speaking: 12 +Thread 25 received 12 +Thread 2 finished speaking: 3 +Thread 26 received 3 +Thread 3 finished speaking: 22 +Thread 27 received 22 +Thread 4 finished speaking: 80 +Thread 28 received 80 +Thread 5 finished speaking: 64 +Thread 29 received 64 +Thread 6 finished speaking: 37 +Thread 30 received 37 +Thread 7 finished speaking: 26 +Thread 31 received 26 +Thread 8 finished speaking: 72 +Thread 32 received 72 +Thread 9 finished speaking: 71 +Thread 33 received 71 +Thread 10 finished speaking: 20 +Thread 34 received 20 +Thread 11 finished speaking: 35 +Thread 35 received 35 +Thread 12 finished speaking: 75 +Thread 36 received 75 +Thread 13 finished speaking: 3 +Thread 37 received 3 +Thread 14 finished speaking: 79 +Thread 38 received 79 +Thread 15 finished speaking: 10 +Thread 39 received 10 +Thread 16 finished speaking: 46 +Thread 40 received 46 +Thread 17 finished speaking: 27 +Thread 41 received 27 +Thread 18 finished speaking: 63 +Thread 42 received 63 +Thread 19 finished speaking: 58 +Thread 43 received 58 +Thread 20 finished speaking: 30 +Thread 44 received 30 +Thread 21 finished speaking: 42 +Thread 45 received 42 +Thread 22 finished speaking: 99 +Thread 46 received 99 +Thread 23 finished speaking: 57 +Thread 47 received 57 +Thread 24 finished speaking: 38 +Thread 48 received 38 +Thread 0 finished speaking: 54 +Thread 49 received 54 +Thread 1 speaking: 97 +Thread 25 listening +Thread 2 speaking: 47 +Thread 26 listening +Thread 1 finished speaking: 97 +Thread 25 received 97 +Thread 2 finished speaking: 47 +Thread 26 received 47 +Thread 3 speaking: 78 +Thread 27 listening +Thread 4 speaking: 41 +Thread 28 listening +Thread 5 speaking: 37 +Thread 29 listening +Thread 6 speaking: 94 +Thread 30 listening +Thread 7 speaking: 97 +Thread 3 finished speaking: 78 +Thread 31 listening +Thread 8 speaking: 23 +Thread 32 listening +Thread 9 speaking: 7 +Thread 33 listening +Thread 10 speaking: 7 +Thread 34 listening +Thread 11 speaking: 63 +Thread 27 received 78 +Thread 4 finished speaking: 41 +Thread 35 listening +Thread 12 speaking: 25 +Thread 36 listening +Thread 13 speaking: 39 +Thread 37 listening +Thread 14 speaking: 35 +Thread 38 listening +Thread 15 speaking: 12 +Thread 28 received 41 +Thread 5 finished speaking: 37 +Thread 29 received 37 +Thread 39 listening +Thread 16 speaking: 11 +Thread 16 finished speaking: 11 +Thread 40 listening +Thread 17 speaking: 48 +Thread 41 listening +Thread 18 speaking: 14 +Thread 42 listening +Thread 43 listening +Thread 20 speaking: 57 +Thread 6 finished speaking: 94 +Thread 30 received 94 +Thread 19 speaking: 8 +Thread 19 finished speaking: 8 +Thread 31 received 8 +Thread 7 finished speaking: 97 +Thread 44 listening +Thread 21 speaking: 52 +Thread 22 speaking: 22 +Thread 46 listening +Thread 23 speaking: 5 +Thread 47 listening +Thread 24 speaking: 18 +Thread 48 listening +Thread 0 speaking: 32 +Thread 49 listening +Thread 32 received 97 +Thread 45 listening +Thread 8 finished speaking: 23 +Thread 33 received 23 +Thread 9 finished speaking: 7 +Thread 34 received 7 +Thread 10 finished speaking: 7 +Thread 35 received 7 +Thread 11 finished speaking: 63 +Thread 12 finished speaking: 25 +Thread 36 received 63 +Thread 37 received 25 +Thread 13 finished speaking: 39 +Thread 38 received 39 +Thread 14 finished speaking: 35 +Thread 39 received 35 +Thread 15 finished speaking: 12 +Thread 40 received 12 +Thread 17 finished speaking: 48 +Thread 41 received 48 +Thread 18 finished speaking: 14 +Thread 42 received 14 +Thread 20 finished speaking: 57 +Thread 43 received 57 +Thread 21 finished speaking: 52 +Thread 44 received 52 +Thread 22 finished speaking: 22 +Thread 46 received 22 +Thread 23 finished speaking: 5 +Thread 47 received 5 +Thread 24 finished speaking: 18 +Thread 48 received 18 +Thread 0 finished speaking: 32 +Thread 49 received 32 +Thread 45 received 32 +Thread 1 speaking: 34 +Thread 25 listening +Thread 1 finished speaking: 34 +Thread 25 received 34 +Thread 2 speaking: 14 +Thread 26 listening +Thread 2 finished speaking: 14 +Thread 26 received 14 +Thread 3 speaking: 27 +Thread 27 listening +Thread 4 speaking: 31 +Thread 3 finished speaking: 27 +Thread 27 received 27 +Thread 28 listening +Thread 5 speaking: 95 +Thread 29 listening +Thread 16 speaking: 23 +Thread 4 finished speaking: 31 +Thread 28 received 31 +Thread 5 finished speaking: 95 +Thread 29 received 95 +Thread 6 speaking: 9 +Thread 30 listening +Thread 19 speaking: 49 +Thread 16 finished speaking: 23 +Thread 30 received 23 +Thread 31 listening +Thread 7 speaking: 44 +Thread 6 finished speaking: 9 +Thread 31 received 9 +Thread 32 listening +Thread 8 speaking: 77 +Thread 33 listening +Thread 9 speaking: 45 +Thread 34 listening +Thread 19 finished speaking: 49 +Thread 32 received 49 +Thread 7 finished speaking: 44 +Thread 33 received 44 +Thread 8 finished speaking: 77 +Thread 10 speaking: 65 +Thread 35 listening +Thread 11 speaking: 77 +Thread 12 speaking: 36 +Thread 36 listening +Thread 37 listening +Thread 13 speaking: 90 +Thread 38 listening +Thread 14 speaking: 49 +Thread 34 received 77 +Thread 39 listening +Thread 15 speaking: 85 +Thread 40 listening +Thread 17 speaking: 52 +Thread 41 listening +Thread 18 speaking: 69 +Thread 42 listening +Thread 20 speaking: 69 +Thread 43 listening +Thread 9 finished speaking: 45 +Thread 21 speaking: 4 +Thread 44 listening +Thread 22 speaking: 95 +Thread 46 listening +Thread 23 speaking: 0 +Thread 47 listening +Thread 24 speaking: 16 +Thread 48 listening +Thread 0 speaking: 33 +Thread 35 received 45 +Thread 21 finished speaking: 4 +Thread 49 listening +Thread 45 listening +Thread 10 finished speaking: 65 +Thread 36 received 65 +Thread 37 received 65 +Thread 11 finished speaking: 77 +Thread 12 finished speaking: 36 +Thread 38 received 36 +Thread 39 received 36 +Thread 13 finished speaking: 90 +Thread 14 finished speaking: 49 +Thread 40 received 49 +Thread 41 received 49 +Thread 15 finished speaking: 85 +Thread 17 finished speaking: 52 +Thread 42 received 52 +Thread 43 received 52 +Thread 18 finished speaking: 69 +Thread 20 finished speaking: 69 +Thread 44 received 69 +Thread 46 received 69 +Thread 22 finished speaking: 95 +Thread 23 finished speaking: 0 +Thread 47 received 0 +Thread 48 received 0 +Thread 24 finished speaking: 16 +Thread 0 finished speaking: 33 +Thread 49 received 33 +Thread 45 received 33 +Thread 1 speaking: 38 +Thread 25 listening +Thread 1 finished speaking: 38 +Thread 25 received 38 +Thread 2 speaking: 17 +Thread 26 listening +Thread 2 finished speaking: 17 +Thread 26 received 17 +Thread 3 speaking: 36 +Thread 27 listening +Thread 3 finished speaking: 36 +Thread 27 received 36 +Thread 4 speaking: 89 +Thread 28 listening +Thread 5 speaking: 96 +Thread 4 finished speaking: 89 +Thread 28 received 89 +Thread 29 listening +Thread 16 speaking: 24 +Thread 30 listening +Thread 5 finished speaking: 96 +Thread 29 received 96 +Thread 16 finished speaking: 24 +Thread 30 received 24 +Thread 6 speaking: 74 +Thread 31 listening +Thread 6 finished speaking: 74 +Thread 31 received 74 +Thread 19 speaking: 63 +Thread 32 listening +Thread 19 finished speaking: 63 +Thread 32 received 63 +Thread 7 speaking: 51 +Thread 33 listening +Thread 8 speaking: 28 +Thread 7 finished speaking: 51 +Thread 33 received 51 +Thread 34 listening +Thread 9 speaking: 54 +Thread 8 finished speaking: 28 +Thread 34 received 28 +Thread 35 listening +Thread 9 finished speaking: 54 +Thread 35 received 54 +Thread 21 speaking: 31 +Thread 10 speaking: 18 +Thread 36 listening +Thread 21 finished speaking: 31 +Thread 36 received 31 +Thread 37 listening +Thread 11 speaking: 32 +Thread 12 speaking: 38 +Thread 38 listening +Thread 39 listening +Thread 13 speaking: 79 +Thread 14 speaking: 74 +Thread 40 listening +Thread 41 listening +Thread 37 received 18 +Thread 10 finished speaking: 18 +Thread 11 finished speaking: 32 +Thread 15 speaking: 21 +Thread 17 speaking: 35 +Thread 42 listening +Thread 43 listening +Thread 18 speaking: 31 +Thread 20 speaking: 63 +Thread 44 listening +Thread 46 listening +Thread 22 speaking: 75 +Thread 38 received 32 +Thread 12 finished speaking: 38 +Thread 23 speaking: 47 +Thread 47 listening +Thread 48 listening +Thread 24 speaking: 18 +Thread 0 speaking: 79 +Thread 49 listening +Thread 45 listening +Thread 39 received 38 +Thread 13 finished speaking: 79 +Thread 40 received 79 +Thread 14 finished speaking: 74 +Thread 41 received 74 +Thread 15 finished speaking: 21 +Thread 42 received 21 +Thread 17 finished speaking: 35 +Thread 43 received 35 +Thread 18 finished speaking: 31 +Thread 44 received 31 +Thread 20 finished speaking: 63 +Thread 46 received 63 +Thread 22 finished speaking: 75 +Thread 47 received 75 +Thread 23 finished speaking: 47 +Thread 48 received 47 +Thread 24 finished speaking: 18 +Thread 49 received 18 +Thread 0 finished speaking: 79 +Thread 45 received 79 +Thread 1 speaking: 18 +Thread 25 listening +Thread 1 finished speaking: 18 +Thread 25 received 18 +Thread 2 speaking: 78 +Thread 26 listening +Thread 2 finished speaking: 78 +Thread 26 received 78 +Thread 3 speaking: 75 +Thread 27 listening +Thread 3 finished speaking: 75 +Thread 27 received 75 +Thread 4 speaking: 30 +Thread 28 listening +Thread 4 finished speaking: 30 +Thread 28 received 30 +Thread 5 speaking: 22 +Thread 29 listening +Thread 16 speaking: 12 +Thread 30 listening +Thread 6 speaking: 47 +Thread 5 finished speaking: 22 +Thread 29 received 22 +Thread 16 finished speaking: 12 +Thread 30 received 12 +Thread 31 listening +Thread 19 speaking: 68 +Thread 6 finished speaking: 47 +Thread 31 received 47 +Thread 32 listening +Thread 19 finished speaking: 68 +Thread 32 received 68 +Thread 7 speaking: 48 +Thread 33 listening +Thread 8 speaking: 39 +Thread 7 finished speaking: 48 +Thread 33 received 48 +Thread 34 listening +Thread 9 speaking: 73 +Thread 35 listening +Thread 8 finished speaking: 39 +Thread 34 received 39 +Thread 9 finished speaking: 73 +Thread 35 received 73 +Thread 21 speaking: 31 +Thread 36 listening +Thread 21 finished speaking: 31 +Thread 36 received 31 +Thread 37 listening +Thread 10 speaking: 38 +Thread 10 finished speaking: 38 +Thread 11 speaking: 95 +Thread 37 received 38 +Thread 38 listening +Thread 12 speaking: 15 +Thread 11 finished speaking: 95 +Thread 38 received 95 +Thread 39 listening +Thread 13 speaking: 82 +Thread 40 listening +Thread 14 speaking: 1 +Thread 12 finished speaking: 15 +Thread 39 received 15 +Thread 13 finished speaking: 82 +Thread 40 received 82 +Thread 41 listening +Thread 15 speaking: 75 +Thread 42 listening +Thread 17 speaking: 57 +Thread 43 listening +Thread 18 speaking: 18 +Thread 44 listening +Thread 20 speaking: 8 +Thread 14 finished speaking: 1 +Thread 41 received 1 +Thread 46 listening +Thread 22 speaking: 65 +Thread 47 listening +Thread 23 speaking: 0 +Thread 48 listening +Thread 24 speaking: 1 +Thread 49 listening +Thread 0 speaking: 51 +Thread 45 listening +Thread 15 finished speaking: 75 +Thread 42 received 75 +Thread 17 finished speaking: 57 +Thread 43 received 57 +Thread 18 finished speaking: 18 +Thread 44 received 18 +Thread 20 finished speaking: 8 +Thread 46 received 8 +Thread 22 finished speaking: 65 +Thread 47 received 65 +Thread 23 finished speaking: 0 +Thread 48 received 0 +Thread 24 finished speaking: 1 +Thread 49 received 1 +Thread 0 finished speaking: 51 +Thread 45 received 51 +Thread 1 speaking: 48 +Thread 25 listening +Thread 1 finished speaking: 48 +Thread 25 received 48 +Thread 2 speaking: 62 +Thread 26 listening +Thread 2 finished speaking: 62 +Thread 26 received 62 +Thread 3 speaking: 67 +Thread 27 listening +Thread 3 finished speaking: 67 +Thread 27 received 67 +Thread 4 speaking: 24 +Thread 28 listening +Thread 4 finished speaking: 24 +Thread 28 received 24 +Thread 5 speaking: 30 +Thread 29 listening +Thread 16 speaking: 29 +Thread 5 finished speaking: 30 +Thread 29 received 30 +Thread 30 listening +Thread 6 speaking: 98 +Thread 31 listening +Thread 16 finished speaking: 29 +Thread 30 received 29 +Thread 6 finished speaking: 98 +Thread 31 received 98 +Thread 19 speaking: 91 +Thread 32 listening +Thread 19 finished speaking: 91 +Thread 32 received 91 +Thread 7 speaking: 53 +Thread 33 listening +Thread 7 finished speaking: 53 +Thread 33 received 53 +Thread 8 speaking: 62 +Thread 34 listening +Thread 9 speaking: 26 +Thread 35 listening +Thread 8 finished speaking: 62 +Thread 34 received 62 +Thread 9 finished speaking: 26 +Thread 35 received 26 +Thread 21 speaking: 35 +Thread 36 listening +Thread 21 finished speaking: 35 +Thread 36 received 35 +Thread 10 speaking: 73 +Thread 37 listening +Thread 10 finished speaking: 73 +Thread 37 received 73 +Thread 11 speaking: 38 +Thread 38 listening +Thread 11 finished speaking: 38 +Thread 38 received 38 +Thread 12 speaking: 86 +Thread 39 listening +Thread 13 speaking: 80 +Thread 12 finished speaking: 86 +Thread 39 received 86 +Thread 40 listening +Thread 13 finished speaking: 80 +Thread 40 received 80 +Thread 14 speaking: 29 +Thread 41 listening +Thread 15 speaking: 52 +Thread 14 finished speaking: 29 +Thread 41 received 29 +Thread 42 listening +Thread 17 speaking: 77 +Thread 43 listening +Thread 18 speaking: 93 +Thread 44 listening +Thread 20 speaking: 35 +Thread 15 finished speaking: 52 +Thread 42 received 52 +Thread 17 finished speaking: 77 +Thread 43 received 77 +Thread 46 listening +Thread 22 speaking: 13 +Thread 22 finished speaking: 13 +Thread 47 listening +Thread 23 speaking: 18 +Thread 48 listening +Thread 24 speaking: 96 +Thread 49 listening +Thread 0 speaking: 63 +Thread 44 received 93 +Thread 46 received 93 +Thread 18 finished speaking: 93 +Thread 20 finished speaking: 35 +Thread 23 finished speaking: 18 +Thread 45 listening +Thread 47 received 18 +Thread 48 received 18 +Thread 24 finished speaking: 96 +Thread 49 received 96 +Thread 0 finished speaking: 63 +Thread 45 received 63 +Thread 1 speaking: 47 +Thread 25 listening +Thread 1 finished speaking: 47 +Thread 25 received 47 +Thread 2 speaking: 52 +Thread 26 listening +Thread 2 finished speaking: 52 +Thread 26 received 52 +Thread 3 speaking: 73 +Thread 27 listening +Thread 4 speaking: 41 +Thread 3 finished speaking: 73 +Thread 27 received 73 +Thread 28 listening +Thread 4 finished speaking: 41 +Thread 28 received 41 +Thread 5 speaking: 49 +Thread 29 listening +Thread 5 finished speaking: 49 +Thread 29 received 49 +Thread 16 speaking: 27 +Thread 30 listening +Thread 6 speaking: 54 +Thread 31 listening +Thread 19 speaking: 88 +Thread 16 finished speaking: 27 +Thread 30 received 27 +Thread 6 finished speaking: 54 +Thread 31 received 54 +Thread 32 listening +Thread 7 speaking: 34 +Thread 33 listening +Thread 19 finished speaking: 88 +Thread 32 received 88 +Thread 7 finished speaking: 34 +Thread 33 received 34 +Thread 8 speaking: 97 +Thread 34 listening +Thread 9 speaking: 38 +Thread 35 listening +Thread 8 finished speaking: 97 +Thread 34 received 97 +Thread 9 finished speaking: 38 +Thread 35 received 38 +Thread 21 speaking: 79 +Thread 36 listening +Thread 10 speaking: 82 +Thread 21 finished speaking: 79 +Thread 36 received 79 +Thread 37 listening +Thread 10 finished speaking: 82 +Thread 37 received 82 +Thread 11 speaking: 42 +Thread 38 listening +Thread 11 finished speaking: 42 +Thread 38 received 42 +Thread 12 speaking: 76 +Thread 39 listening +Thread 13 speaking: 31 +Thread 12 finished speaking: 76 +Thread 39 received 76 +Thread 40 listening +Thread 13 finished speaking: 31 +Thread 40 received 31 +Thread 14 speaking: 1 +Thread 41 listening +Thread 14 finished speaking: 1 +Thread 41 received 1 +Thread 15 speaking: 4 +Thread 42 listening +Thread 17 speaking: 69 +Thread 43 listening +Thread 22 speaking: 74 +Thread 15 finished speaking: 4 +Thread 42 received 4 +Thread 17 finished speaking: 69 +Thread 43 received 69 +Thread 44 listening +Thread 46 listening +Thread 18 speaking: 53 +Thread 20 speaking: 74 +Thread 22 finished speaking: 74 +Thread 44 received 74 +Thread 18 finished speaking: 53 +Thread 46 received 53 +Thread 23 speaking: 96 +Thread 47 listening +Thread 48 listening +Thread 24 speaking: 23 +Thread 49 listening +Thread 0 speaking: 70 +Thread 45 listening +Thread 20 finished speaking: 74 +Thread 47 received 74 +Thread 23 finished speaking: 96 +Thread 48 received 96 +Thread 24 finished speaking: 23 +Thread 49 received 23 +Thread 0 finished speaking: 70 +Thread 45 received 70 +Thread 1 speaking: 54 +Thread 25 listening +Thread 1 finished speaking: 54 +Thread 25 received 54 +Thread 2 speaking: 59 +Thread 26 listening +Thread 2 finished speaking: 59 +Thread 26 received 59 +Thread 3 speaking: 44 +Thread 27 listening +Thread 3 finished speaking: 44 +Thread 27 received 44 +Thread 4 speaking: 58 +Thread 28 listening +Thread 4 finished speaking: 58 +Thread 28 received 58 +Thread 5 speaking: 56 +Thread 29 listening +Thread 5 finished speaking: 56 +Thread 29 received 56 +Thread 16 speaking: 99 +Thread 30 listening +Thread 6 speaking: 14 +Thread 31 listening +Thread 19 speaking: 50 +Thread 16 finished speaking: 99 +Thread 30 received 99 +Thread 6 finished speaking: 14 +Thread 31 received 14 +Thread 32 listening +Thread 7 speaking: 34 +Thread 33 listening +Thread 19 finished speaking: 50 +Thread 32 received 50 +Thread 7 finished speaking: 34 +Thread 33 received 34 +Thread 8 speaking: 82 +Thread 34 listening +Thread 9 speaking: 47 +Thread 35 listening +Thread 8 finished speaking: 82 +Thread 34 received 82 +Thread 9 finished speaking: 47 +Thread 35 received 47 +Thread 21 speaking: 26 +Thread 36 listening +Thread 21 finished speaking: 26 +Thread 36 received 26 +Thread 10 speaking: 17 +Thread 37 listening +Thread 10 finished speaking: 17 +Thread 37 received 17 +Thread 11 speaking: 36 +Thread 38 listening +Thread 11 finished speaking: 36 +Thread 38 received 36 +Thread 12 speaking: 29 +Thread 39 listening +Thread 12 finished speaking: 29 +Thread 39 received 29 +Thread 13 speaking: 45 +Thread 40 listening +Thread 13 finished speaking: 45 +Thread 40 received 45 +Thread 14 speaking: 19 +Thread 41 listening +Thread 14 finished speaking: 19 +Thread 41 received 19 +Thread 15 speaking: 55 +Thread 42 listening +Thread 17 speaking: 9 +Thread 43 listening +Thread 15 finished speaking: 55 +Thread 42 received 55 +Thread 17 finished speaking: 9 +Thread 43 received 9 +Thread 22 speaking: 82 +Thread 44 listening +Thread 18 speaking: 59 +Thread 46 listening +Thread 22 finished speaking: 82 +Thread 44 received 82 +Thread 18 finished speaking: 59 +Thread 46 received 59 +Thread 20 speaking: 51 +Thread 47 listening +Thread 23 speaking: 62 +Thread 48 listening +Thread 24 speaking: 34 +Thread 49 listening +Thread 20 finished speaking: 51 +Thread 47 received 51 +Thread 23 finished speaking: 62 +Thread 48 received 62 +Thread 0 speaking: 77 +Thread 45 listening +Thread 24 finished speaking: 34 +Thread 49 received 34 +Thread 0 finished speaking: 77 +Thread 45 received 77 +Thread 1 speaking: 8 +Thread 25 listening +Thread 2 speaking: 51 +Thread 1 finished speaking: 8 +Thread 25 received 8 +Thread 26 listening +Thread 2 finished speaking: 51 +Thread 26 received 51 +Thread 3 speaking: 77 +Thread 27 listening +Thread 3 finished speaking: 77 +Thread 27 received 77 +Thread 4 speaking: 71 +Thread 28 listening +Thread 4 finished speaking: 71 +Thread 28 received 71 +Thread 5 speaking: 42 +Thread 29 listening +Thread 5 finished speaking: 42 +Thread 29 received 42 +Thread 16 speaking: 91 +Thread 30 listening +Thread 6 speaking: 37 +Thread 31 listening +Thread 16 finished speaking: 91 +Thread 30 received 91 +Thread 6 finished speaking: 37 +Thread 31 received 37 +Thread 19 speaking: 50 +Thread 32 listening +Thread 7 speaking: 42 +Thread 33 listening +Thread 19 finished speaking: 50 +Thread 32 received 50 +Thread 7 finished speaking: 42 +Thread 33 received 42 +Thread 8 speaking: 74 +Thread 34 listening +Thread 9 speaking: 58 +Thread 35 listening +Thread 21 speaking: 88 +Thread 8 finished speaking: 74 +Thread 34 received 74 +Thread 9 finished speaking: 58 +Thread 35 received 58 +Thread 36 listening +Thread 10 speaking: 7 +Thread 21 finished speaking: 88 +Thread 36 received 88 +Thread 37 listening +Thread 10 finished speaking: 7 +Thread 37 received 7 +Thread 11 speaking: 69 +Thread 38 listening +Thread 11 finished speaking: 69 +Thread 38 received 69 +Thread 12 speaking: 36 +Thread 39 listening +Thread 13 speaking: 91 +Thread 12 finished speaking: 36 +Thread 39 received 36 +Thread 40 listening +Thread 14 speaking: 99 +Thread 13 finished speaking: 91 +Thread 40 received 91 +Thread 41 listening +Thread 14 finished speaking: 99 +Thread 41 received 99 +Thread 15 speaking: 4 +Thread 42 listening +Thread 17 speaking: 3 +Thread 43 listening +Thread 15 finished speaking: 4 +Thread 42 received 4 +Thread 17 finished speaking: 3 +Thread 43 received 3 +Thread 22 speaking: 0 +Thread 44 listening +Thread 18 speaking: 48 +Thread 46 listening +Thread 22 finished speaking: 0 +Thread 44 received 0 +Thread 18 finished speaking: 48 +Thread 46 received 48 +Thread 20 speaking: 64 +Thread 47 listening +Thread 23 speaking: 77 +Thread 48 listening +Thread 20 finished speaking: 64 +Thread 47 received 64 +Thread 23 finished speaking: 77 +Thread 48 received 77 +Thread 24 speaking: 45 +Thread 49 listening +Thread 0 speaking: 47 +Thread 45 listening +Thread 24 finished speaking: 45 +Thread 49 received 45 +Thread 0 finished speaking: 47 +Thread 45 received 47 +Thread 1 speaking: 13 +Thread 25 listening +Thread 1 finished speaking: 13 +Thread 25 received 13 +Thread 2 speaking: 7 +Thread 26 listening +Thread 2 finished speaking: 7 +Thread 26 received 7 +Thread 3 speaking: 97 +Thread 27 listening +Thread 3 finished speaking: 97 +Thread 27 received 97 +Thread 4 speaking: 14 +Thread 28 listening +Thread 4 finished speaking: 14 +Thread 28 received 14 +Thread 5 speaking: 31 +Thread 29 listening +Thread 5 finished speaking: 31 +Thread 29 received 31 +Thread 16 speaking: 43 +Thread 30 listening +Thread 6 speaking: 77 +Thread 31 listening +Thread 16 finished speaking: 43 +Thread 30 received 43 +Thread 6 finished speaking: 77 +Thread 31 received 77 +Thread 19 speaking: 64 +Thread 32 listening +Thread 7 speaking: 48 +Thread 33 listening +Thread 19 finished speaking: 64 +Thread 32 received 64 +Thread 7 finished speaking: 48 +Thread 33 received 48 +Thread 8 speaking: 12 +Thread 34 listening +Thread 8 finished speaking: 12 +Thread 34 received 12 +Thread 9 speaking: 98 +Thread 35 listening +Thread 21 speaking: 98 +Thread 36 listening +Thread 9 finished speaking: 98 +Thread 35 received 98 +Thread 21 finished speaking: 98 +Thread 36 received 98 +Thread 10 speaking: 96 +Thread 37 listening +Thread 10 finished speaking: 96 +Thread 37 received 96 +Thread 11 speaking: 71 +Thread 38 listening +Thread 11 finished speaking: 71 +Thread 38 received 71 +Thread 12 speaking: 64 +Thread 39 listening +Thread 12 finished speaking: 64 +Thread 39 received 64 +Thread 13 speaking: 30 +Thread 40 listening +Thread 13 finished speaking: 30 +Thread 40 received 30 +Thread 14 speaking: 18 +Thread 41 listening +Thread 14 finished speaking: 18 +Thread 41 received 18 +Thread 15 speaking: 74 +Thread 42 listening +Thread 17 speaking: 18 +Thread 43 listening +Thread 15 finished speaking: 74 +Thread 42 received 74 +Thread 17 finished speaking: 18 +Thread 43 received 18 +Thread 22 speaking: 49 +Thread 44 listening +Thread 18 speaking: 0 +Thread 46 listening +Thread 22 finished speaking: 49 +Thread 44 received 49 +Thread 18 finished speaking: 0 +Thread 46 received 0 +Thread 20 speaking: 97 +Thread 47 listening +Thread 23 speaking: 93 +Thread 48 listening +Thread 20 finished speaking: 97 +Thread 47 received 97 +Thread 23 finished speaking: 93 +Thread 48 received 93 +Thread 24 speaking: 24 +Thread 49 listening +Thread 0 speaking: 82 +Thread 45 listening +Thread 24 finished speaking: 24 +Thread 49 received 24 +Thread 0 finished speaking: 82 +Thread 45 received 82 +Thread 1 speaking: 92 +Thread 25 listening +Thread 1 finished speaking: 92 +Thread 25 received 92 +Thread 2 speaking: 55 +Thread 26 listening +Thread 2 finished speaking: 55 +Thread 26 received 55 +Thread 3 speaking: 49 +Thread 27 listening +Thread 3 finished speaking: 49 +Thread 27 received 49 +Thread 4 speaking: 16 +Thread 28 listening +Thread 4 finished speaking: 16 +Thread 28 received 16 +Thread 5 speaking: 24 +Thread 29 listening +Thread 5 finished speaking: 24 +Thread 29 received 24 +Thread 16 speaking: 35 +Thread 30 listening +Thread 6 speaking: 40 +Thread 31 listening +Thread 16 finished speaking: 35 +Thread 30 received 35 +Thread 6 finished speaking: 40 +Thread 31 received 40 +Thread 19 speaking: 90 +Thread 32 listening +Thread 7 speaking: 16 +Thread 33 listening +Thread 19 finished speaking: 90 +Thread 32 received 90 +Thread 7 finished speaking: 16 +Thread 33 received 16 +Thread 8 speaking: 81 +Thread 34 listening +Thread 8 finished speaking: 81 +Thread 34 received 81 +Thread 9 speaking: 93 +Thread 35 listening +Thread 21 speaking: 58 +Thread 36 listening +Thread 10 speaking: 81 +Thread 37 listening +Thread 9 finished speaking: 93 +Thread 35 received 93 +Thread 21 finished speaking: 58 +Thread 10 finished speaking: 81 +Thread 36 received 58 +Thread 37 received 81 +Thread 11 speaking: 7 +Thread 38 listening +Thread 11 finished speaking: 7 +Thread 38 received 7 +Thread 12 speaking: 6 +Thread 39 listening +Thread 12 finished speaking: 6 +Thread 39 received 6 +Thread 13 speaking: 24 +Thread 40 listening +Thread 14 speaking: 85 +Thread 13 finished speaking: 24 +Thread 40 received 24 +Thread 41 listening +Thread 14 finished speaking: 85 +Thread 41 received 85 +Thread 15 speaking: 39 +Thread 42 listening +Thread 17 speaking: 40 +Thread 43 listening +Thread 15 finished speaking: 39 +Thread 42 received 39 +Thread 17 finished speaking: 40 +Thread 43 received 40 +Thread 22 speaking: 38 +Thread 44 listening +Thread 18 speaking: 93 +Thread 46 listening +Thread 22 finished speaking: 38 +Thread 44 received 38 +Thread 18 finished speaking: 93 +Thread 46 received 93 +Thread 20 speaking: 7 +Thread 47 listening +Thread 23 speaking: 26 +Thread 48 listening +Thread 20 finished speaking: 7 +Thread 47 received 7 +Thread 23 finished speaking: 26 +Thread 48 received 26 +Thread 24 speaking: 91 +Thread 49 listening +Thread 0 speaking: 20 +Thread 45 listening +Thread 24 finished speaking: 91 +Thread 49 received 91 +Thread 0 finished speaking: 20 +Thread 45 received 20 +Thread 1 speaking: 64 +Thread 25 listening +Thread 1 finished speaking: 64 +Thread 25 received 64 +Thread 2 speaking: 50 +Thread 26 listening +Thread 2 finished speaking: 50 +Thread 26 received 50 +Thread 3 speaking: 69 +Thread 27 listening +Thread 4 speaking: 96 +Thread 28 listening +Thread 3 finished speaking: 69 +Thread 27 received 69 +Thread 4 finished speaking: 96 +Thread 28 received 96 +Thread 5 speaking: 73 +Thread 29 listening +Thread 5 finished speaking: 73 +Thread 29 received 73 +Thread 16 speaking: 2 +Thread 30 listening +Thread 6 speaking: 35 +Thread 31 listening +Thread 16 finished speaking: 2 +Thread 30 received 2 +Thread 6 finished speaking: 35 +Thread 31 received 35 +Thread 19 speaking: 57 +Thread 32 listening +Thread 7 speaking: 35 +Thread 33 listening +Thread 19 finished speaking: 57 +Thread 32 received 57 +Thread 7 finished speaking: 35 +Thread 33 received 35 +Thread 8 speaking: 76 +Thread 34 listening +Thread 8 finished speaking: 76 +Thread 34 received 76 +Thread 9 speaking: 43 +Thread 35 listening +Thread 21 speaking: 2 +Thread 10 speaking: 78 +Thread 36 listening +Thread 37 listening +Thread 9 finished speaking: 43 +Thread 35 received 43 +Thread 21 finished speaking: 2 +Thread 36 received 2 +Thread 10 finished speaking: 78 +Thread 11 speaking: 62 +Thread 38 listening +Thread 12 speaking: 77 +Thread 39 listening +Thread 37 received 78 +Thread 11 finished speaking: 62 +Thread 38 received 62 +Thread 12 finished speaking: 77 +Thread 39 received 77 +Thread 13 speaking: 35 +Thread 40 listening +Thread 13 finished speaking: 35 +Thread 40 received 35 +Thread 14 speaking: 59 +Thread 41 listening +Thread 14 finished speaking: 59 +Thread 41 received 59 +Thread 15 speaking: 2 +Thread 42 listening +Thread 17 speaking: 23 +Thread 43 listening +Thread 22 speaking: 55 +Thread 15 finished speaking: 2 +Thread 42 received 2 +Thread 17 finished speaking: 23 +Thread 43 received 23 +Thread 44 listening +Thread 18 speaking: 56 +Thread 46 listening +Thread 22 finished speaking: 55 +Thread 44 received 55 +Thread 18 finished speaking: 56 +Thread 46 received 56 +Thread 20 speaking: 55 +Thread 47 listening +Thread 23 speaking: 34 +Thread 48 listening +Thread 24 speaking: 58 +Thread 20 finished speaking: 55 +Thread 47 received 55 +Thread 23 finished speaking: 34 +Thread 48 received 34 +Thread 49 listening +Thread 0 speaking: 98 +Thread 45 listening +Thread 24 finished speaking: 58 +Thread 49 received 58 +Thread 0 finished speaking: 98 +Thread 45 received 98 +Thread 1 speaking: 89 +Thread 25 listening +Thread 1 finished speaking: 89 +Thread 25 received 89 +Thread 2 speaking: 36 +Thread 26 listening +Thread 2 finished speaking: 36 +Thread 26 received 36 +Thread 3 speaking: 13 +Thread 27 listening +Thread 4 speaking: 38 +Thread 28 listening +Thread 3 finished speaking: 13 +Thread 27 received 13 +Thread 4 finished speaking: 38 +Thread 28 received 38 +Thread 5 speaking: 65 +Thread 29 listening +Thread 5 finished speaking: 65 +Thread 29 received 65 +Thread 16 speaking: 3 +Thread 30 listening +Thread 6 speaking: 90 +Thread 31 listening +Thread 16 finished speaking: 3 +Thread 30 received 3 +Thread 6 finished speaking: 90 +Thread 31 received 90 +Thread 19 speaking: 29 +Thread 32 listening +Thread 7 speaking: 93 +Thread 33 listening +Thread 19 finished speaking: 29 +Thread 32 received 29 +Thread 7 finished speaking: 93 +Thread 33 received 93 +Thread 8 speaking: 13 +Thread 34 listening +Thread 8 finished speaking: 13 +Thread 34 received 13 +Thread 9 speaking: 28 +Thread 35 listening +Thread 21 speaking: 70 +Thread 36 listening +Thread 9 finished speaking: 28 +Thread 35 received 28 +Thread 21 finished speaking: 70 +Thread 36 received 70 +Thread 10 speaking: 64 +Thread 37 listening +Thread 11 speaking: 83 +Thread 38 listening +Thread 12 speaking: 83 +Thread 39 listening +Thread 10 finished speaking: 64 +Thread 37 received 64 +Thread 11 finished speaking: 83 +Thread 38 received 83 +Thread 12 finished speaking: 83 +Thread 39 received 83 +Thread 13 speaking: 71 +Thread 40 listening +Thread 13 finished speaking: 71 +Thread 40 received 71 +Thread 14 speaking: 60 +Thread 41 listening +Thread 14 finished speaking: 60 +Thread 41 received 60 +Thread 15 speaking: 56 +Thread 42 listening +Thread 17 speaking: 95 +Thread 43 listening +Thread 15 finished speaking: 56 +Thread 42 received 56 +Thread 17 finished speaking: 95 +Thread 43 received 95 +Thread 22 speaking: 80 +Thread 44 listening +Thread 18 speaking: 57 +Thread 46 listening +Thread 22 finished speaking: 80 +Thread 44 received 80 +Thread 18 finished speaking: 57 +Thread 46 received 57 +Thread 20 speaking: 78 +Thread 47 listening +Thread 23 speaking: 3 +Thread 48 listening +Thread 20 finished speaking: 78 +Thread 47 received 78 +Thread 23 finished speaking: 3 +Thread 48 received 3 +Thread 24 speaking: 67 +Thread 49 listening +Thread 0 speaking: 77 +Thread 45 listening +Thread 24 finished speaking: 67 +Thread 49 received 67 +Thread 0 finished speaking: 77 +Thread 45 received 77 +Thread 1 speaking: 47 +Thread 25 listening +Thread 1 finished speaking: 47 +Thread 25 received 47 +Thread 2 speaking: 56 +Thread 26 listening +Thread 2 finished speaking: 56 +Thread 26 received 56 +Thread 3 speaking: 42 +Thread 27 listening +Thread 4 speaking: 88 +Thread 3 finished speaking: 42 +Thread 27 received 42 +Thread 28 listening +Thread 4 finished speaking: 88 +Thread 28 received 88 +Thread 5 speaking: 46 +Thread 29 listening +Thread 5 finished speaking: 46 +Thread 29 received 46 +Thread 16 speaking: 38 +Thread 30 listening +Thread 16 finished speaking: 38 +Thread 30 received 38 +Thread 6 speaking: 32 +Thread 31 listening +Thread 19 speaking: 85 +Thread 32 listening +Thread 6 finished speaking: 32 +Thread 31 received 32 +Thread 19 finished speaking: 85 +Thread 32 received 85 +Thread 7 speaking: 16 +Thread 33 listening +Thread 8 speaking: 51 +Thread 34 listening +Thread 7 finished speaking: 16 +Thread 33 received 16 +Thread 8 finished speaking: 51 +Thread 34 received 51 +Thread 9 speaking: 3 +Thread 35 listening +Thread 21 speaking: 41 +Thread 36 listening +Thread 9 finished speaking: 3 +Thread 35 received 3 +Thread 21 finished speaking: 41 +Thread 36 received 41 +Thread 10 speaking: 82 +Thread 37 listening +Thread 11 speaking: 81 +Thread 38 listening +Thread 12 speaking: 45 +Thread 39 listening +Thread 10 finished speaking: 82 +Thread 37 received 82 +Thread 11 finished speaking: 81 +Thread 38 received 81 +Thread 13 speaking: 41 +Thread 40 listening +Thread 12 finished speaking: 45 +Thread 39 received 45 +Thread 13 finished speaking: 41 +Thread 40 received 41 +Thread 14 speaking: 83 +Thread 41 listening +Thread 14 finished speaking: 83 +Thread 41 received 83 +Thread 15 speaking: 67 +Thread 42 listening +Thread 17 speaking: 44 +Thread 43 listening +Thread 15 finished speaking: 67 +Thread 42 received 67 +Thread 17 finished speaking: 44 +Thread 43 received 44 +Thread 22 speaking: 83 +Thread 44 listening +Thread 18 speaking: 36 +Thread 46 listening +Thread 20 speaking: 95 +Thread 22 finished speaking: 83 +Thread 44 received 83 +Thread 18 finished speaking: 36 +Thread 46 received 36 +Thread 47 listening +Thread 23 speaking: 31 +Thread 48 listening +Thread 20 finished speaking: 95 +Thread 47 received 95 +Thread 23 finished speaking: 31 +Thread 48 received 31 +Thread 24 speaking: 6 +Thread 49 listening +Thread 0 speaking: 5 +Thread 45 listening +Thread 24 finished speaking: 6 +Thread 49 received 6 +Thread 0 finished speaking: 5 +Thread 45 received 5 +Thread 1 speaking: 47 +Thread 25 listening +Thread 1 finished speaking: 47 +Thread 25 received 47 +Thread 2 speaking: 78 +Thread 26 listening +Thread 2 finished speaking: 78 +Thread 26 received 78 +Thread 3 speaking: 97 +Thread 27 listening +Thread 4 speaking: 46 +Thread 28 listening +Thread 3 finished speaking: 97 +Thread 27 received 97 +Thread 4 finished speaking: 46 +Thread 28 received 46 +Thread 5 speaking: 48 +Thread 29 listening +Thread 5 finished speaking: 48 +Thread 29 received 48 +Thread 16 speaking: 14 +Thread 30 listening +Thread 16 finished speaking: 14 +Thread 30 received 14 +Thread 6 speaking: 78 +Thread 31 listening +Thread 19 speaking: 72 +Thread 32 listening +Thread 6 finished speaking: 78 +Thread 31 received 78 +Thread 19 finished speaking: 72 +Thread 32 received 72 +Thread 7 speaking: 53 +Thread 33 listening +Thread 8 speaking: 76 +Thread 34 listening +Thread 7 finished speaking: 53 +Thread 33 received 53 +Thread 8 finished speaking: 76 +Thread 34 received 76 +Thread 9 speaking: 45 +Thread 35 listening +Thread 21 speaking: 6 +Thread 36 listening +Thread 9 finished speaking: 45 +Thread 35 received 45 +Thread 21 finished speaking: 6 +Thread 36 received 6 +Thread 10 speaking: 20 +Thread 37 listening +Thread 11 speaking: 4 +Thread 38 listening +Thread 12 speaking: 20 +Thread 10 finished speaking: 20 +Thread 37 received 20 +Thread 11 finished speaking: 4 +Thread 38 received 4 +Thread 39 listening +Thread 13 speaking: 2 +Thread 40 listening +Thread 14 speaking: 78 +Thread 41 listening +Thread 12 finished speaking: 20 +Thread 39 received 20 +Thread 13 finished speaking: 2 +Thread 40 received 2 +Thread 14 finished speaking: 78 +Thread 41 received 78 +Thread 15 speaking: 98 +Thread 42 listening +Thread 17 speaking: 22 +Thread 43 listening +Thread 15 finished speaking: 98 +Thread 42 received 98 +Thread 17 finished speaking: 22 +Thread 43 received 22 +Thread 22 speaking: 27 +Thread 44 listening +Thread 18 speaking: 47 +Thread 46 listening +Thread 20 speaking: 71 +Thread 22 finished speaking: 27 +Thread 44 received 27 +Thread 18 finished speaking: 47 +Thread 46 received 47 +Thread 47 listening +Thread 23 speaking: 21 +Thread 48 listening +Thread 20 finished speaking: 71 +Thread 47 received 71 +Thread 23 finished speaking: 21 +Thread 48 received 21 +Thread 24 speaking: 54 +Thread 49 listening +Thread 0 speaking: 31 +Thread 45 listening +Thread 24 finished speaking: 54 +Thread 49 received 54 +Thread 0 finished speaking: 31 +Thread 45 received 31 +Thread 1 speaking: 51 +Thread 25 listening +Thread 1 finished speaking: 51 +Thread 25 received 51 +Thread 2 speaking: 18 +Thread 26 listening +Thread 2 finished speaking: 18 +Thread 26 received 18 +Thread 3 speaking: 72 +Thread 27 listening +Thread 4 speaking: 25 +Thread 28 listening +Thread 3 finished speaking: 72 +Thread 27 received 72 +Thread 4 finished speaking: 25 +Thread 28 received 25 +Thread 5 speaking: 65 +Thread 29 listening +Thread 5 finished speaking: 65 +Thread 29 received 65 +Thread 16 speaking: 78 +Thread 30 listening +Thread 16 finished speaking: 78 +Thread 30 received 78 +Thread 6 speaking: 98 +Thread 31 listening +Thread 19 speaking: 69 +Thread 6 finished speaking: 98 +Thread 31 received 98 +Thread 32 listening +Thread 7 speaking: 71 +Thread 33 listening +Thread 8 speaking: 96 +Thread 19 finished speaking: 69 +Thread 32 received 69 +Thread 7 finished speaking: 71 +Thread 33 received 71 +Thread 34 listening +Thread 8 finished speaking: 96 +Thread 34 received 96 +Thread 9 speaking: 46 +Thread 35 listening +Thread 21 speaking: 72 +Thread 36 listening +Thread 9 finished speaking: 46 +Thread 35 received 46 +Thread 21 finished speaking: 72 +Thread 36 received 72 +Thread 10 speaking: 25 +Thread 37 listening +Thread 11 speaking: 85 +Thread 10 finished speaking: 25 +Thread 37 received 25 +Thread 38 listening +Thread 12 speaking: 21 +Thread 39 listening +Thread 11 finished speaking: 85 +Thread 38 received 85 +Thread 12 finished speaking: 21 +Thread 39 received 21 +Thread 13 speaking: 63 +Thread 40 listening +Thread 14 speaking: 38 +Thread 41 listening +Thread 13 finished speaking: 63 +Thread 40 received 63 +Thread 14 finished speaking: 38 +Thread 41 received 38 +Thread 15 speaking: 16 +Thread 42 listening +Thread 17 speaking: 66 +Thread 15 finished speaking: 16 +Thread 42 received 16 +Thread 43 listening +Thread 22 speaking: 44 +Thread 44 listening +Thread 17 finished speaking: 66 +Thread 43 received 66 +Thread 22 finished speaking: 44 +Thread 44 received 44 +Thread 18 speaking: 63 +Thread 46 listening +Thread 20 speaking: 80 +Thread 47 listening +Thread 23 speaking: 65 +Thread 48 listening +Thread 18 finished speaking: 63 +Thread 46 received 63 +Thread 20 finished speaking: 80 +Thread 47 received 80 +Thread 23 finished speaking: 65 +Thread 24 speaking: 49 +Thread 49 listening +Thread 0 speaking: 78 +Thread 45 listening +Thread 48 received 65 +Thread 24 finished speaking: 49 +Thread 49 received 49 +Thread 0 finished speaking: 78 +Thread 45 received 78 +Thread 1 speaking: 23 +Thread 25 listening +Thread 1 finished speaking: 23 +Thread 25 received 23 +Thread 2 speaking: 53 +Thread 26 listening +Thread 2 finished speaking: 53 +Thread 26 received 53 +Thread 3 speaking: 19 +Thread 27 listening +Thread 4 speaking: 62 +Thread 28 listening +Thread 3 finished speaking: 19 +Thread 27 received 19 +Thread 4 finished speaking: 62 +Thread 28 received 62 +Thread 5 speaking: 28 +Thread 29 listening +Thread 16 speaking: 45 +Thread 5 finished speaking: 28 +Thread 29 received 28 +Thread 30 listening +Thread 16 finished speaking: 45 +Thread 30 received 45 +Thread 6 speaking: 49 +Thread 31 listening +Thread 6 finished speaking: 49 +Thread 31 received 49 +Thread 19 speaking: 52 +Thread 32 listening +Thread 7 speaking: 37 +Thread 33 listening +Thread 8 speaking: 50 +Thread 34 listening +Thread 19 finished speaking: 52 +Thread 32 received 52 +Thread 7 finished speaking: 37 +Thread 33 received 37 +Thread 8 finished speaking: 50 +Thread 34 received 50 +Thread 9 speaking: 55 +Thread 35 listening +Thread 21 speaking: 16 +Thread 36 listening +Thread 10 speaking: 30 +Thread 9 finished speaking: 55 +Thread 35 received 55 +Thread 21 finished speaking: 16 +Thread 36 received 16 +Thread 37 listening +Thread 11 speaking: 20 +Thread 10 finished speaking: 30 +Thread 37 received 30 +Thread 38 listening +Thread 12 speaking: 13 +Thread 39 listening +Thread 11 finished speaking: 20 +Thread 38 received 20 +Thread 12 finished speaking: 13 +Thread 39 received 13 +Thread 13 speaking: 37 +Thread 40 listening +Thread 14 speaking: 99 +Thread 41 listening +Thread 13 finished speaking: 37 +Thread 40 received 37 +Thread 14 finished speaking: 99 +Thread 41 received 99 +Thread 15 speaking: 54 +Thread 42 listening +Thread 15 finished speaking: 54 +Thread 42 received 54 +Thread 17 speaking: 88 +Thread 43 listening +Thread 22 speaking: 2 +Thread 44 listening +Thread 17 finished speaking: 88 +Thread 43 received 88 +Thread 22 finished speaking: 2 +Thread 44 received 2 +Thread 18 speaking: 71 +Thread 46 listening +Thread 20 speaking: 28 +Thread 47 listening +Thread 23 speaking: 80 +Thread 18 finished speaking: 71 +Thread 46 received 71 +Thread 20 finished speaking: 28 +Thread 47 received 28 +Thread 48 listening +Thread 24 speaking: 98 +Thread 49 listening +Thread 0 speaking: 43 +Thread 45 listening +Thread 23 finished speaking: 80 +Thread 48 received 80 +Thread 24 finished speaking: 98 +Thread 49 received 98 +Thread 0 finished speaking: 43 +Thread 45 received 43 +Thread 1 speaking: 52 +Thread 25 listening +Thread 1 finished speaking: 52 +Thread 25 received 52 +Thread 2 speaking: 80 +Thread 26 listening +Thread 2 finished speaking: 80 +Thread 26 received 80 +Thread 3 speaking: 2 +Thread 27 listening +Thread 4 speaking: 62 +Thread 28 listening +Thread 3 finished speaking: 2 +Thread 27 received 2 +Thread 4 finished speaking: 62 +Thread 28 received 62 +Thread 5 speaking: 14 +Thread 29 listening +Thread 5 finished speaking: 14 +Thread 29 received 14 +Thread 16 speaking: 83 +Thread 30 listening +Thread 16 finished speaking: 83 +Thread 30 received 83 +Thread 6 speaking: 34 +Thread 31 listening +Thread 6 finished speaking: 34 +Thread 31 received 34 +Thread 19 speaking: 2 +Thread 32 listening +Thread 7 speaking: 49 +Thread 33 listening +Thread 8 speaking: 38 +Thread 34 listening +Thread 19 finished speaking: 2 +Thread 32 received 2 +Thread 7 finished speaking: 49 +Thread 8 finished speaking: 38 +Thread 33 received 49 +Thread 34 received 38 +Thread 9 speaking: 6 +Thread 35 listening +Thread 21 speaking: 45 +Thread 36 listening +Thread 10 speaking: 94 +Thread 9 finished speaking: 6 +Thread 35 received 6 +Thread 21 finished speaking: 45 +Thread 36 received 45 +Thread 37 listening +Thread 11 speaking: 94 +Thread 10 finished speaking: 94 +Thread 37 received 94 +Thread 38 listening +Thread 12 speaking: 29 +Thread 39 listening +Thread 13 speaking: 82 +Thread 11 finished speaking: 94 +Thread 38 received 94 +Thread 12 finished speaking: 29 +Thread 39 received 29 +Thread 40 listening +Thread 14 speaking: 86 +Thread 41 listening +Thread 13 finished speaking: 82 +Thread 40 received 82 +Thread 14 finished speaking: 86 +Thread 41 received 86 +Thread 15 speaking: 44 +Thread 42 listening +Thread 15 finished speaking: 44 +Thread 42 received 44 +Thread 17 speaking: 93 +Thread 43 listening +Thread 22 speaking: 87 +Thread 17 finished speaking: 93 +Thread 43 received 93 +Thread 44 listening +Thread 18 speaking: 78 +Thread 46 listening +Thread 22 finished speaking: 87 +Thread 44 received 87 +Thread 18 finished speaking: 78 +Thread 46 received 78 +Thread 20 speaking: 59 +Thread 47 listening +Thread 23 speaking: 44 +Thread 20 finished speaking: 59 +Thread 47 received 59 +Thread 48 listening +Thread 24 speaking: 23 +Thread 49 listening +Thread 0 speaking: 53 +Thread 45 listening +Thread 23 finished speaking: 44 +Thread 48 received 44 +Thread 24 finished speaking: 23 +Thread 49 received 23 +Thread 0 finished speaking: 53 +Thread 45 received 53 +Thread 1 speaking: 63 +Thread 25 listening +Thread 1 finished speaking: 63 +Thread 25 received 63 +Thread 2 speaking: 2 +Thread 26 listening +Thread 2 finished speaking: 2 +Thread 26 received 2 +Thread 3 speaking: 87 +Thread 27 listening +Thread 4 speaking: 73 +Thread 28 listening +Thread 3 finished speaking: 87 +Thread 27 received 87 +Thread 4 finished speaking: 73 +Thread 28 received 73 +Thread 5 speaking: 94 +Thread 29 listening +Thread 5 finished speaking: 94 +Thread 29 received 94 +Thread 16 speaking: 94 +Thread 30 listening +Thread 16 finished speaking: 94 +Thread 30 received 94 +Thread 6 speaking: 96 +Thread 31 listening +Thread 6 finished speaking: 96 +Thread 31 received 96 +Thread 19 speaking: 32 +Thread 32 listening +Thread 7 speaking: 75 +Thread 19 finished speaking: 32 +Thread 32 received 32 +Thread 8 speaking: 93 +Thread 33 listening +Thread 34 listening +Thread 7 finished speaking: 75 +Thread 33 received 75 +Thread 8 finished speaking: 93 +Thread 34 received 93 +Thread 9 speaking: 39 +Thread 35 listening +Thread 21 speaking: 7 +Thread 36 listening +Thread 9 finished speaking: 39 +Thread 35 received 39 +Thread 21 finished speaking: 7 +Thread 36 received 7 +Thread 10 speaking: 95 +Thread 37 listening +Thread 10 finished speaking: 95 +Thread 37 received 95 +Thread 11 speaking: 92 +Thread 38 listening +Thread 12 speaking: 90 +Thread 39 listening +Thread 11 finished speaking: 92 +Thread 38 received 92 +Thread 12 finished speaking: 90 +Thread 39 received 90 +Thread 13 speaking: 90 +Thread 40 listening +Thread 14 speaking: 49 +Thread 41 listening +Thread 13 finished speaking: 90 +Thread 40 received 90 +Thread 14 finished speaking: 49 +Thread 41 received 49 +Thread 15 speaking: 98 +Thread 42 listening +Thread 15 finished speaking: 98 +Thread 42 received 98 +Thread 17 speaking: 5 +Thread 43 listening +Thread 17 finished speaking: 5 +Thread 43 received 5 +Thread 22 speaking: 59 +Thread 44 listening +Thread 18 speaking: 18 +Thread 46 listening +Thread 22 finished speaking: 59 +Thread 44 received 59 +Thread 18 finished speaking: 18 +Thread 46 received 18 +Thread 20 speaking: 74 +Thread 47 listening +Thread 20 finished speaking: 74 +Thread 47 received 74 +Thread 23 speaking: 53 +Thread 48 listening +Thread 23 finished speaking: 53 +Thread 48 received 53 +Thread 24 speaking: 57 +Thread 49 listening +Thread 0 speaking: 24 +Thread 45 listening +Thread 24 finished speaking: 57 +Thread 49 received 57 +Thread 0 finished speaking: 24 +Thread 45 received 24 +Thread 1 speaking: 68 +Thread 25 listening +Thread 1 finished speaking: 68 +Thread 25 received 68 +Thread 2 speaking: 38 +Thread 26 listening +Thread 2 finished speaking: 38 +Thread 26 received 38 +Thread 3 speaking: 39 +Thread 27 listening +Thread 4 speaking: 34 +Thread 28 listening +Thread 3 finished speaking: 39 +Thread 27 received 39 +Thread 4 finished speaking: 34 +Thread 28 received 34 +Thread 5 speaking: 37 +Thread 29 listening +Thread 5 finished speaking: 37 +Thread 29 received 37 +Thread 16 speaking: 37 +Thread 30 listening +Thread 16 finished speaking: 37 +Thread 30 received 37 +Thread 6 speaking: 80 +Thread 31 listening +Thread 6 finished speaking: 80 +Thread 31 received 80 +Thread 19 speaking: 17 +Thread 32 listening +Thread 19 finished speaking: 17 +Thread 32 received 17 +Thread 7 speaking: 93 +Thread 33 listening +Thread 8 speaking: 31 +Thread 34 listening +Thread 7 finished speaking: 93 +Thread 33 received 93 +Thread 8 finished speaking: 31 +Thread 34 received 31 +Thread 9 speaking: 81 +Thread 35 listening +Thread 21 speaking: 15 +Thread 36 listening +Thread 9 finished speaking: 81 +Thread 35 received 81 +Thread 21 finished speaking: 15 +Thread 36 received 15 +Thread 10 speaking: 22 +Thread 37 listening +Thread 10 finished speaking: 22 +Thread 37 received 22 +Thread 11 speaking: 62 +Thread 38 listening +Thread 12 speaking: 50 +Thread 39 listening +Thread 11 finished speaking: 62 +Thread 38 received 62 +Thread 12 finished speaking: 50 +Thread 39 received 50 +Thread 13 speaking: 90 +Thread 40 listening +Thread 14 speaking: 14 +Thread 13 finished speaking: 90 +Thread 40 received 90 +Thread 41 listening +Thread 14 finished speaking: 14 +Thread 41 received 14 +Thread 15 speaking: 15 +Thread 42 listening +Thread 15 finished speaking: 15 +Thread 42 received 15 +Thread 17 speaking: 21 +Thread 43 listening +Thread 17 finished speaking: 21 +Thread 43 received 21 +Thread 22 speaking: 47 +Thread 44 listening +Thread 18 speaking: 49 +Thread 46 listening +Thread 22 finished speaking: 47 +Thread 44 received 47 +Thread 18 finished speaking: 49 +Thread 46 received 49 +Thread 20 speaking: 95 +Thread 47 listening +Thread 20 finished speaking: 95 +Thread 47 received 95 +Thread 23 speaking: 32 +Thread 48 listening +Thread 23 finished speaking: 32 +Thread 48 received 32 +Thread 24 speaking: 38 +Thread 49 listening +Thread 0 speaking: 70 +Thread 45 listening +Thread 24 finished speaking: 38 +Thread 49 received 38 +Thread 0 finished speaking: 70 +Thread 45 received 70 +Thread 1 speaking: 41 +Thread 25 listening +Thread 1 finished speaking: 41 +Thread 25 received 41 +Thread 2 speaking: 9 +Thread 26 listening +Thread 2 finished speaking: 9 +Thread 26 received 9 +Thread 3 speaking: 28 +Thread 27 listening +Thread 4 speaking: 11 +Thread 28 listening +Thread 5 speaking: 25 +Thread 29 listening +Thread 3 finished speaking: 28 +Thread 27 received 28 +Thread 4 finished speaking: 11 +Thread 5 finished speaking: 25 +Thread 28 received 11 +Thread 29 received 25 +Thread 16 speaking: 90 +Thread 30 listening +Thread 16 finished speaking: 90 +Thread 30 received 90 +Thread 6 speaking: 22 +Thread 31 listening +Thread 6 finished speaking: 22 +Thread 31 received 22 +Thread 19 speaking: 27 +Thread 32 listening +Thread 19 finished speaking: 27 +Thread 32 received 27 +Thread 7 speaking: 43 +Thread 33 listening +Thread 8 speaking: 87 +Thread 34 listening +Thread 7 finished speaking: 43 +Thread 33 received 43 +Thread 8 finished speaking: 87 +Thread 34 received 87 +Thread 9 speaking: 7 +Thread 35 listening +Thread 21 speaking: 2 +Thread 36 listening +Thread 10 speaking: 41 +Thread 37 listening +Thread 9 finished speaking: 7 +Thread 35 received 7 +Thread 21 finished speaking: 2 +Thread 10 finished speaking: 41 +Thread 36 received 2 +Thread 37 received 41 +Thread 11 speaking: 53 +Thread 38 listening +Thread 11 finished speaking: 53 +Thread 38 received 53 +Thread 12 speaking: 47 +Thread 39 listening +Thread 13 speaking: 77 +Thread 12 finished speaking: 47 +Thread 39 received 47 +Thread 40 listening +Thread 14 speaking: 30 +Thread 41 listening +Thread 13 finished speaking: 77 +Thread 40 received 77 +Thread 14 finished speaking: 30 +Thread 41 received 30 +Thread 15 speaking: 40 +Thread 42 listening +Thread 17 speaking: 55 +Thread 15 finished speaking: 40 +Thread 42 received 40 +Thread 43 listening +Thread 17 finished speaking: 55 +Thread 43 received 55 +Thread 22 speaking: 70 +Thread 44 listening +Thread 18 speaking: 80 +Thread 46 listening +Thread 20 speaking: 90 +Thread 22 finished speaking: 70 +Thread 44 received 70 +Thread 18 finished speaking: 80 +Thread 46 received 80 +Thread 47 listening +Thread 23 speaking: 17 +Thread 48 listening +Thread 20 finished speaking: 90 +Thread 47 received 90 +Thread 23 finished speaking: 17 +Thread 48 received 17 +Thread 24 speaking: 85 +Thread 49 listening +Thread 0 speaking: 4 +Thread 45 listening +Thread 24 finished speaking: 85 +Thread 49 received 85 +Thread 0 finished speaking: 4 +Thread 45 received 4 +Thread 1 speaking: 54 +Thread 25 listening +Thread 1 finished speaking: 54 +Thread 25 received 54 +Thread 2 speaking: 76 +Thread 26 listening +Thread 2 finished speaking: 76 +Thread 26 received 76 +Thread 3 speaking: 51 +Thread 27 listening +Thread 4 speaking: 85 +Thread 3 finished speaking: 51 +Thread 27 received 51 +Thread 5 speaking: 92 +Thread 28 listening +Thread 29 listening +Thread 16 speaking: 56 +Thread 30 listening +Thread 4 finished speaking: 85 +Thread 28 received 85 +Thread 5 finished speaking: 92 +Thread 16 finished speaking: 56 +Thread 29 received 92 +Thread 30 received 56 +Thread 6 speaking: 84 +Thread 31 listening +Thread 6 finished speaking: 84 +Thread 31 received 84 +Thread 19 speaking: 15 +Thread 32 listening +Thread 19 finished speaking: 15 +Thread 32 received 15 +Thread 7 speaking: 19 +Thread 33 listening +Thread 8 speaking: 28 +Thread 34 listening +Thread 7 finished speaking: 19 +Thread 33 received 19 +Thread 8 finished speaking: 28 +Thread 34 received 28 +Thread 9 speaking: 97 +Thread 35 listening +Thread 21 speaking: 84 +Thread 9 finished speaking: 97 +Thread 35 received 97 +Thread 10 speaking: 96 +Thread 36 listening +Thread 37 listening +Thread 11 speaking: 82 +Thread 38 listening +Thread 21 finished speaking: 84 +Thread 36 received 84 +Thread 10 finished speaking: 96 +Thread 37 received 96 +Thread 11 finished speaking: 82 +Thread 12 speaking: 87 +Thread 39 listening +Thread 38 received 82 +Thread 12 finished speaking: 87 +Thread 39 received 87 +Thread 13 speaking: 54 +Thread 40 listening +Thread 14 speaking: 43 +Thread 41 listening +Thread 13 finished speaking: 54 +Thread 40 received 54 +Thread 14 finished speaking: 43 +Thread 41 received 43 +Thread 15 speaking: 70 +Thread 42 listening +Thread 15 finished speaking: 70 +Thread 42 received 70 +Thread 17 speaking: 51 +Thread 43 listening +Thread 17 finished speaking: 51 +Thread 43 received 51 +Thread 22 speaking: 68 +Thread 44 listening +Thread 18 speaking: 0 +Thread 46 listening +Thread 22 finished speaking: 68 +Thread 44 received 68 +Thread 18 finished speaking: 0 +Thread 46 received 0 +Thread 20 speaking: 55 +Thread 47 listening +Thread 23 speaking: 68 +Thread 48 listening +Thread 20 finished speaking: 55 +Thread 47 received 55 +Thread 23 finished speaking: 68 +Thread 48 received 68 +Thread 24 speaking: 13 +Thread 49 listening +Thread 0 speaking: 53 +Thread 45 listening +Thread 24 finished speaking: 13 +Thread 49 received 13 +Thread 0 finished speaking: 53 +Thread 45 received 53 +Thread 1 speaking: 61 +Thread 25 listening +Thread 1 finished speaking: 61 +Thread 25 received 61 +Thread 2 speaking: 14 +Thread 26 listening +Thread 2 finished speaking: 14 +Thread 26 received 14 +Thread 3 speaking: 63 +Thread 27 listening +Thread 3 finished speaking: 63 +Thread 27 received 63 +Thread 4 speaking: 36 +Thread 28 listening +Thread 5 speaking: 76 +Thread 16 speaking: 46 +Thread 29 listening +Thread 30 listening +Thread 4 finished speaking: 36 +Thread 28 received 36 +Thread 5 finished speaking: 76 +Thread 29 received 76 +Thread 16 finished speaking: 46 +Thread 6 speaking: 34 +Thread 31 listening +Thread 30 received 46 +Thread 6 finished speaking: 34 +Thread 31 received 34 +Thread 19 speaking: 29 +Thread 32 listening +Thread 19 finished speaking: 29 +Thread 32 received 29 +Thread 7 speaking: 73 +Thread 33 listening +Thread 8 speaking: 30 +Thread 34 listening +Thread 7 finished speaking: 73 +Thread 33 received 73 +Thread 8 finished speaking: 30 +Thread 34 received 30 +Thread 9 speaking: 93 +Thread 35 listening +Thread 9 finished speaking: 93 +Thread 35 received 93 +Thread 21 speaking: 38 +Thread 36 listening +Thread 10 speaking: 6 +Thread 37 listening +Thread 11 speaking: 65 +Thread 21 finished speaking: 38 +Thread 36 received 38 +Thread 10 finished speaking: 6 +Thread 37 received 6 +Thread 38 listening +Thread 12 speaking: 62 +Thread 39 listening +Thread 11 finished speaking: 65 +Thread 38 received 65 +Thread 12 finished speaking: 62 +Thread 39 received 62 +Thread 13 speaking: 85 +Thread 40 listening +Thread 14 speaking: 74 +Thread 41 listening +Thread 13 finished speaking: 85 +Thread 40 received 85 +Thread 14 finished speaking: 74 +Thread 41 received 74 +Thread 15 speaking: 96 +Thread 42 listening +Thread 15 finished speaking: 96 +Thread 42 received 96 +Thread 17 speaking: 45 +Thread 43 listening +Thread 17 finished speaking: 45 +Thread 43 received 45 +Thread 22 speaking: 93 +Thread 44 listening +Thread 18 speaking: 89 +Thread 46 listening +Thread 22 finished speaking: 93 +Thread 44 received 93 +Thread 18 finished speaking: 89 +Thread 46 received 89 +Thread 20 speaking: 67 +Thread 47 listening +Thread 23 speaking: 68 +Thread 48 listening +Thread 20 finished speaking: 67 +Thread 47 received 67 +Thread 23 finished speaking: 68 +Thread 48 received 68 +Thread 24 speaking: 37 +Thread 49 listening +Thread 0 speaking: 0 +Thread 45 listening +Thread 24 finished speaking: 37 +Thread 49 received 37 +Thread 0 finished speaking: 0 +Thread 45 received 0 +Thread 1 speaking: 9 +Thread 25 listening +Thread 1 finished speaking: 9 +Thread 25 received 9 +Thread 2 speaking: 9 +Thread 26 listening +Thread 2 finished speaking: 9 +Thread 26 received 9 +Thread 3 speaking: 75 +Thread 27 listening +Thread 3 finished speaking: 75 +Thread 27 received 75 +Thread 4 speaking: 20 +Thread 28 listening +Thread 4 finished speaking: 20 +Thread 28 received 20 +Thread 5 speaking: 40 +Thread 29 listening +Thread 16 speaking: 62 +Thread 30 listening +Thread 6 speaking: 24 +Thread 31 listening +Thread 5 finished speaking: 40 +Thread 29 received 40 +Thread 16 finished speaking: 62 +Thread 30 received 62 +Thread 6 finished speaking: 24 +Thread 31 received 24 +Thread 19 speaking: 68 +Thread 32 listening +Thread 19 finished speaking: 68 +Thread 32 received 68 +Thread 7 speaking: 68 +Thread 33 listening +Thread 8 speaking: 44 +Thread 34 listening +Thread 7 finished speaking: 68 +Thread 33 received 68 +Thread 8 finished speaking: 44 +Thread 34 received 44 +Thread 9 speaking: 73 +Thread 35 listening +Thread 9 finished speaking: 73 +Thread 35 received 73 +Thread 21 speaking: 39 +Thread 36 listening +Thread 10 speaking: 26 +Thread 21 finished speaking: 39 +Thread 36 received 39 +Thread 37 listening +Thread 11 speaking: 40 +Thread 38 listening +Thread 12 speaking: 93 +Thread 39 listening +Thread 10 finished speaking: 26 +Thread 37 received 26 +Thread 11 finished speaking: 40 +Thread 38 received 40 +Thread 12 finished speaking: 93 +Thread 39 received 93 +Thread 13 speaking: 64 +Thread 40 listening +Thread 14 speaking: 21 +Thread 41 listening +Thread 13 finished speaking: 64 +Thread 40 received 64 +Thread 14 finished speaking: 21 +Thread 41 received 21 +Thread 15 speaking: 62 +Thread 42 listening +Thread 15 finished speaking: 62 +Thread 42 received 62 +Thread 17 speaking: 70 +Thread 43 listening +Thread 17 finished speaking: 70 +Thread 43 received 70 +Thread 22 speaking: 57 +Thread 44 listening +Thread 18 speaking: 77 +Thread 46 listening +Thread 22 finished speaking: 57 +Thread 44 received 57 +Thread 18 finished speaking: 77 +Thread 46 received 77 +Thread 20 speaking: 47 +Thread 47 listening +Thread 23 speaking: 62 +Thread 48 listening +Thread 20 finished speaking: 47 +Thread 47 received 47 +Thread 23 finished speaking: 62 +Thread 48 received 62 +Thread 24 speaking: 13 +Thread 49 listening +Thread 0 speaking: 35 +Thread 45 listening +Thread 24 finished speaking: 13 +Thread 49 received 13 +Thread 0 finished speaking: 35 +Thread 45 received 35 +Thread 1 speaking: 14 +Thread 25 listening +Thread 1 finished speaking: 14 +Thread 25 received 14 +Thread 2 speaking: 82 +Thread 26 listening +Thread 2 finished speaking: 82 +Thread 26 received 82 +Thread 3 speaking: 27 +Thread 27 listening +Thread 3 finished speaking: 27 +Thread 27 received 27 +Thread 4 speaking: 39 +Thread 28 listening +Thread 4 finished speaking: 39 +Thread 28 received 39 +Thread 5 speaking: 35 +Thread 29 listening +Thread 5 finished speaking: 35 +Thread 29 received 35 +Thread 16 speaking: 8 +Thread 30 listening +Thread 6 speaking: 78 +Thread 31 listening +Thread 16 finished speaking: 8 +Thread 30 received 8 +Thread 6 finished speaking: 78 +Thread 31 received 78 +Thread 19 speaking: 51 +Thread 32 listening +Thread 19 finished speaking: 51 +Thread 32 received 51 +Thread 7 speaking: 70 +Thread 33 listening +Thread 8 speaking: 75 +Thread 34 listening +Thread 7 finished speaking: 70 +Thread 33 received 70 +Thread 8 finished speaking: 75 +Thread 34 received 75 +Thread 9 speaking: 91 +Thread 35 listening +Thread 9 finished speaking: 91 +Thread 35 received 91 +Thread 21 speaking: 58 +Thread 36 listening +Thread 21 finished speaking: 58 +Thread 36 received 58 +Thread 10 speaking: 12 +Thread 37 listening +Thread 11 speaking: 75 +Thread 38 listening +Thread 10 finished speaking: 12 +Thread 37 received 12 +Thread 11 finished speaking: 75 +Thread 38 received 75 +Thread 12 speaking: 76 +Thread 39 listening +Thread 13 speaking: 10 +Thread 40 listening +Thread 14 speaking: 84 +Thread 12 finished speaking: 76 +Thread 39 received 76 +Thread 13 finished speaking: 10 +Thread 40 received 10 +Thread 41 listening +Thread 14 finished speaking: 84 +Thread 41 received 84 +Thread 15 speaking: 53 +Thread 42 listening +Thread 15 finished speaking: 53 +Thread 42 received 53 +Thread 17 speaking: 6 +Thread 43 listening +Thread 17 finished speaking: 6 +Thread 43 received 6 +Thread 22 speaking: 49 +Thread 44 listening +Thread 18 speaking: 44 +Thread 46 listening +Thread 22 finished speaking: 49 +Thread 44 received 49 +Thread 18 finished speaking: 44 +Thread 46 received 44 +Thread 20 speaking: 48 +Thread 47 listening +Thread 23 speaking: 67 +Thread 48 listening +Thread 20 finished speaking: 48 +Thread 47 received 48 +Thread 23 finished speaking: 67 +Thread 48 received 67 +Thread 24 speaking: 41 +Thread 49 listening +Thread 0 speaking: 9 +Thread 45 listening +Thread 24 finished speaking: 41 +Thread 49 received 41 +Thread 0 finished speaking: 9 +Thread 45 received 9 +Thread 1 speaking: 76 +Thread 25 listening +Thread 1 finished speaking: 76 +Thread 25 received 76 +Thread 2 speaking: 11 +Thread 26 listening +Thread 2 finished speaking: 11 +Thread 26 received 11 +Thread 3 speaking: 13 +Thread 27 listening +Thread 3 finished speaking: 13 +Thread 27 received 13 +Thread 4 speaking: 42 +Thread 28 listening +Thread 4 finished speaking: 42 +Thread 28 received 42 +Thread 5 speaking: 34 +Thread 29 listening +Thread 5 finished speaking: 34 +Thread 29 received 34 +Thread 16 speaking: 33 +Thread 30 listening +Thread 6 speaking: 12 +Thread 31 listening +Thread 19 speaking: 87 +Thread 32 listening +Thread 16 finished speaking: 33 +Thread 30 received 33 +Thread 6 finished speaking: 12 +Thread 31 received 12 +Thread 19 finished speaking: 87 +Thread 32 received 87 +Thread 7 speaking: 3 +Thread 33 listening +Thread 8 speaking: 21 +Thread 34 listening +Thread 7 finished speaking: 3 +Thread 33 received 3 +Thread 8 finished speaking: 21 +Thread 34 received 21 +Thread 9 speaking: 39 +Thread 35 listening +Thread 9 finished speaking: 39 +Thread 35 received 39 +Thread 21 speaking: 10 +Thread 36 listening +Thread 21 finished speaking: 10 +Thread 36 received 10 +Thread 10 speaking: 74 +Thread 37 listening +Thread 10 finished speaking: 74 +Thread 37 received 74 +Thread 11 speaking: 11 +Thread 38 listening +Thread 12 speaking: 53 +Thread 11 finished speaking: 11 +Thread 38 received 11 +Thread 39 listening +Thread 13 speaking: 40 +Thread 40 listening +Thread 14 speaking: 63 +Thread 41 listening +Thread 12 finished speaking: 53 +Thread 39 received 53 +Thread 13 finished speaking: 40 +Thread 14 finished speaking: 63 +Thread 40 received 40 +Thread 41 received 63 +Thread 15 speaking: 66 +Thread 42 listening +Thread 15 finished speaking: 66 +Thread 42 received 66 +Thread 17 speaking: 91 +Thread 43 listening +Thread 17 finished speaking: 91 +Thread 43 received 91 +Thread 22 speaking: 32 +Thread 44 listening +Thread 18 speaking: 91 +Thread 46 listening +Thread 20 speaking: 12 +Thread 22 finished speaking: 32 +Thread 44 received 32 +Thread 18 finished speaking: 91 +Thread 46 received 91 +Thread 47 listening +Thread 23 speaking: 91 +Thread 48 listening +Thread 20 finished speaking: 12 +Thread 47 received 12 +Thread 23 finished speaking: 91 +Thread 48 received 91 +Thread 24 speaking: 42 +Thread 49 listening +Thread 24 finished speaking: 42 +Thread 49 received 42 +Thread 0 speaking: 79 +Thread 45 listening +Thread 0 finished speaking: 79 +Thread 45 received 79 +Thread 1 speaking: 65 +Thread 25 listening +Thread 1 finished speaking: 65 +Thread 25 received 65 +Thread 2 speaking: 31 +Thread 26 listening +Thread 2 finished speaking: 31 +Thread 26 received 31 +Thread 3 speaking: 16 +Thread 27 listening +Thread 3 finished speaking: 16 +Thread 27 received 16 +Thread 4 speaking: 76 +Thread 28 listening +Thread 4 finished speaking: 76 +Thread 28 received 76 +Thread 5 speaking: 34 +Thread 29 listening +Thread 5 finished speaking: 34 +Thread 29 received 34 +Thread 16 speaking: 92 +Thread 30 listening +Thread 6 speaking: 51 +Thread 31 listening +Thread 19 speaking: 2 +Thread 32 listening +Thread 16 finished speaking: 92 +Thread 30 received 92 +Thread 6 finished speaking: 51 +Thread 31 received 51 +Thread 19 finished speaking: 2 +Thread 32 received 2 +Thread 7 speaking: 91 +Thread 33 listening +Thread 8 speaking: 91 +Thread 34 listening +Thread 7 finished speaking: 91 +Thread 33 received 91 +Thread 8 finished speaking: 91 +Thread 34 received 91 +Thread 9 speaking: 98 +Thread 35 listening +Thread 9 finished speaking: 98 +Thread 35 received 98 +Thread 21 speaking: 76 +Thread 36 listening +Thread 21 finished speaking: 76 +Thread 36 received 76 +Thread 10 speaking: 42 +Thread 37 listening +Thread 10 finished speaking: 42 +Thread 37 received 42 +Thread 11 speaking: 60 +Thread 38 listening +Thread 11 finished speaking: 60 +Thread 38 received 60 +Thread 12 speaking: 64 +Thread 39 listening +Thread 13 speaking: 49 +Thread 14 speaking: 84 +Thread 40 listening +Thread 12 finished speaking: 64 +Thread 39 received 64 +Thread 13 finished speaking: 49 +Thread 40 received 49 +Thread 41 listening +Thread 14 finished speaking: 84 +Thread 41 received 84 +Thread 15 speaking: 6 +Thread 42 listening +Thread 15 finished speaking: 6 +Thread 42 received 6 +Thread 17 speaking: 78 +Thread 43 listening +Thread 17 finished speaking: 78 +Thread 43 received 78 +Thread 22 speaking: 40 +Thread 44 listening +Thread 18 speaking: 9 +Thread 46 listening +Thread 22 finished speaking: 40 +Thread 44 received 40 +Thread 18 finished speaking: 9 +Thread 46 received 9 +Thread 20 speaking: 78 +Thread 47 listening +Thread 23 speaking: 75 +Thread 48 listening +Thread 20 finished speaking: 78 +Thread 47 received 78 +Thread 23 finished speaking: 75 +Thread 48 received 75 +Thread 24 speaking: 96 +Thread 49 listening +Thread 24 finished speaking: 96 +Thread 49 received 96 +Thread 0 speaking: 83 +Thread 45 listening +Thread 0 finished speaking: 83 +Thread 45 received 83 +Thread 1 speaking: 55 +Thread 25 listening +Thread 1 finished speaking: 55 +Thread 25 received 55 +Thread 2 speaking: 73 +Thread 26 listening +Thread 2 finished speaking: 73 +Thread 26 received 73 +Thread 3 speaking: 86 +Thread 27 listening +Thread 3 finished speaking: 86 +Thread 27 received 86 +Thread 4 speaking: 18 +Thread 28 listening +Thread 4 finished speaking: 18 +Thread 28 received 18 +Thread 5 speaking: 18 +Thread 29 listening +Thread 5 finished speaking: 18 +Thread 29 received 18 +Thread 16 speaking: 64 +Thread 30 listening +Thread 6 speaking: 35 +Thread 31 listening +Thread 19 speaking: 74 +Thread 32 listening +Thread 16 finished speaking: 64 +Thread 30 received 64 +Thread 6 finished speaking: 35 +Thread 31 received 35 +Thread 19 finished speaking: 74 +Thread 32 received 74 +Thread 7 speaking: 42 +Thread 33 listening +Thread 7 finished speaking: 42 +Thread 33 received 42 +Thread 8 speaking: 79 +Thread 34 listening +Thread 9 speaking: 26 +Thread 35 listening +Thread 8 finished speaking: 79 +Thread 34 received 79 +Thread 9 finished speaking: 26 +Thread 35 received 26 +Thread 21 speaking: 3 +Thread 36 listening +Thread 21 finished speaking: 3 +Thread 36 received 3 +Thread 10 speaking: 93 +Thread 37 listening +Thread 10 finished speaking: 93 +Thread 37 received 93 +Thread 11 speaking: 3 +Thread 38 listening +Thread 11 finished speaking: 3 +Thread 38 received 3 +Thread 12 speaking: 58 +Thread 39 listening +Thread 13 speaking: 80 +Thread 40 listening +Thread 14 speaking: 44 +Thread 41 listening +Thread 12 finished speaking: 58 +Thread 39 received 58 +Thread 13 finished speaking: 80 +Thread 40 received 80 +Thread 14 finished speaking: 44 +Thread 15 speaking: 64 +Thread 42 listening +Thread 41 received 44 +Thread 15 finished speaking: 64 +Thread 42 received 64 +Thread 17 speaking: 47 +Thread 43 listening +Thread 17 finished speaking: 47 +Thread 43 received 47 +Thread 22 speaking: 80 +Thread 44 listening +Thread 18 speaking: 69 +Thread 46 listening +Thread 22 finished speaking: 80 +Thread 44 received 80 +Thread 18 finished speaking: 69 +Thread 46 received 69 +Thread 20 speaking: 21 +Thread 47 listening +Thread 23 speaking: 46 +Thread 48 listening +Thread 24 speaking: 80 +Thread 20 finished speaking: 21 +Thread 47 received 21 +Thread 23 finished speaking: 46 +Thread 48 received 46 +Thread 49 listening +Thread 0 speaking: 80 +Thread 45 listening +Thread 24 finished speaking: 80 +Thread 49 received 80 +Thread 0 finished speaking: 80 +Thread 45 received 80 +Thread 1 speaking: 34 +Thread 25 listening +Thread 1 finished speaking: 34 +Thread 25 received 34 +Thread 2 speaking: 63 +Thread 26 listening +Thread 2 finished speaking: 63 +Thread 26 received 63 +Thread 3 speaking: 16 +Thread 27 listening +Thread 3 finished speaking: 16 +Thread 27 received 16 +Thread 4 speaking: 54 +Thread 28 listening +Thread 4 finished speaking: 54 +Thread 28 received 54 +Thread 5 speaking: 15 +Thread 29 listening +Thread 5 finished speaking: 15 +Thread 29 received 15 +Thread 16 speaking: 44 +Thread 30 listening +Thread 6 speaking: 76 +Thread 31 listening +Thread 19 speaking: 62 +Thread 32 listening +Thread 16 finished speaking: 44 +Thread 30 received 44 +Thread 6 finished speaking: 76 +Thread 31 received 76 +Thread 19 finished speaking: 62 +Thread 32 received 62 +Thread 7 speaking: 69 +Thread 33 listening +Thread 7 finished speaking: 69 +Thread 33 received 69 +Thread 8 speaking: 62 +Thread 34 listening +Thread 9 speaking: 32 +Thread 35 listening +Thread 21 speaking: 60 +Thread 8 finished speaking: 62 +Thread 34 received 62 +Thread 9 finished speaking: 32 +Thread 35 received 32 +Thread 36 listening +Thread 10 speaking: 38 +Thread 37 listening +Thread 21 finished speaking: 60 +Thread 36 received 60 +Thread 10 finished speaking: 38 +Thread 37 received 38 +Thread 11 speaking: 36 +Thread 38 listening +Thread 11 finished speaking: 36 +Thread 38 received 36 +Thread 12 speaking: 91 +Thread 39 listening +Thread 13 speaking: 71 +Thread 40 listening +Thread 14 speaking: 66 +Thread 12 finished speaking: 91 +Thread 39 received 91 +Thread 13 finished speaking: 71 +Thread 40 received 71 +Thread 41 listening +Thread 15 speaking: 28 +Thread 42 listening +Thread 17 speaking: 89 +Thread 14 finished speaking: 66 +Thread 41 received 66 +Thread 15 finished speaking: 28 +Thread 42 received 28 +Thread 43 listening +Thread 17 finished speaking: 89 +Thread 43 received 89 +Thread 22 speaking: 86 +Thread 44 listening +Thread 18 speaking: 36 +Thread 46 listening +Thread 22 finished speaking: 86 +Thread 44 received 86 +Thread 18 finished speaking: 36 +Thread 46 received 36 +Thread 20 speaking: 97 +Thread 47 listening +Thread 23 speaking: 73 +Thread 48 listening +Thread 20 finished speaking: 97 +Thread 47 received 97 +Thread 23 finished speaking: 73 +Thread 48 received 73 +Thread 24 speaking: 92 +Thread 49 listening +Thread 0 speaking: 27 +Thread 45 listening +Thread 24 finished speaking: 92 +Thread 49 received 92 +Thread 0 finished speaking: 27 +Thread 45 received 27 +Thread 1 speaking: 54 +Thread 25 listening +Thread 1 finished speaking: 54 +Thread 25 received 54 +Thread 2 speaking: 18 +Thread 26 listening +Thread 2 finished speaking: 18 +Thread 26 received 18 +Thread 3 speaking: 16 +Thread 27 listening +Thread 3 finished speaking: 16 +Thread 27 received 16 +Thread 4 speaking: 3 +Thread 28 listening +Thread 4 finished speaking: 3 +Thread 28 received 3 +Thread 5 speaking: 33 +Thread 29 listening +Thread 5 finished speaking: 33 +Thread 29 received 33 +Thread 16 speaking: 53 +Thread 30 listening +Thread 6 speaking: 33 +Thread 16 finished speaking: 53 +Thread 30 received 53 +Thread 31 listening +Thread 19 speaking: 50 +Thread 32 listening +Thread 6 finished speaking: 33 +Thread 31 received 33 +Thread 19 finished speaking: 50 +Thread 32 received 50 +Thread 7 speaking: 28 +Thread 33 listening +Thread 7 finished speaking: 28 +Thread 33 received 28 +Thread 8 speaking: 73 +Thread 34 listening +Thread 9 speaking: 99 +Thread 35 listening +Thread 8 finished speaking: 73 +Thread 34 received 73 +Thread 9 finished speaking: 99 +Thread 35 received 99 +Thread 21 speaking: 31 +Thread 36 listening +Thread 10 speaking: 81 +Thread 37 listening +Thread 21 finished speaking: 31 +Thread 36 received 31 +Thread 10 finished speaking: 81 +Thread 37 received 81 +Thread 11 speaking: 98 +Thread 38 listening +Thread 11 finished speaking: 98 +Thread 38 received 98 +Thread 12 speaking: 11 +Thread 39 listening +Thread 13 speaking: 28 +Thread 40 listening +Thread 12 finished speaking: 11 +Thread 39 received 11 +Thread 13 finished speaking: 28 +Thread 40 received 28 +Thread 14 speaking: 16 +Thread 41 listening +Thread 15 speaking: 82 +Thread 42 listening +Thread 14 finished speaking: 16 +Thread 41 received 16 +Thread 15 finished speaking: 82 +Thread 42 received 82 +Thread 17 speaking: 80 +Thread 43 listening +Thread 17 finished speaking: 80 +Thread 43 received 80 +Thread 22 speaking: 51 +Thread 44 listening +Thread 18 speaking: 55 +Thread 46 listening +Thread 22 finished speaking: 51 +Thread 44 received 51 +Thread 18 finished speaking: 55 +Thread 46 received 55 +Thread 20 speaking: 96 +Thread 47 listening +Thread 23 speaking: 54 +Thread 48 listening +Thread 20 finished speaking: 96 +Thread 47 received 96 +Thread 23 finished speaking: 54 +Thread 48 received 54 +Thread 24 speaking: 79 +Thread 49 listening +Thread 0 speaking: 86 +Thread 45 listening +Thread 24 finished speaking: 79 +Thread 49 received 79 +Thread 0 finished speaking: 86 +Thread 45 received 86 +Thread 1 speaking: 19 +Thread 25 listening +Thread 1 finished speaking: 19 +Thread 25 received 19 +Thread 2 speaking: 92 +Thread 26 listening +Thread 2 finished speaking: 92 +Thread 26 received 92 +Thread 3 speaking: 32 +Thread 27 listening +Thread 3 finished speaking: 32 +Thread 27 received 32 +Thread 4 speaking: 59 +Thread 28 listening +Thread 4 finished speaking: 59 +Thread 28 received 59 +Thread 5 speaking: 36 +Thread 29 listening +Thread 5 finished speaking: 36 +Thread 29 received 36 +Thread 16 speaking: 42 +Thread 30 listening +Thread 16 finished speaking: 42 +Thread 30 received 42 +Thread 6 speaking: 45 +Thread 31 listening +Thread 6 finished speaking: 45 +Thread 31 received 45 +Thread 19 speaking: 63 +Thread 32 listening +Thread 19 finished speaking: 63 +Thread 32 received 63 +Thread 7 speaking: 54 +Thread 33 listening +Thread 7 finished speaking: 54 +Thread 33 received 54 +Thread 8 speaking: 73 +Thread 34 listening +Thread 9 speaking: 83 +Thread 35 listening +Thread 21 speaking: 83 +Thread 8 finished speaking: 73 +Thread 34 received 73 +Thread 9 finished speaking: 83 +Thread 35 received 83 +Thread 36 listening +Thread 10 speaking: 50 +Thread 37 listening +Thread 21 finished speaking: 83 +Thread 36 received 83 +Thread 10 finished speaking: 50 +Thread 37 received 50 +Thread 11 speaking: 58 +Thread 38 listening +Thread 11 finished speaking: 58 +Thread 38 received 58 +Thread 12 speaking: 7 +Thread 39 listening +Thread 13 speaking: 19 +Thread 40 listening +Thread 14 speaking: 63 +Thread 12 finished speaking: 7 +Thread 39 received 7 +Thread 13 finished speaking: 19 +Thread 40 received 19 +Thread 41 listening +Thread 15 speaking: 9 +Thread 42 listening +Thread 17 speaking: 1 +Thread 43 listening +Thread 14 finished speaking: 63 +Thread 41 received 63 +Thread 15 finished speaking: 9 +Thread 42 received 9 +Thread 17 finished speaking: 1 +Thread 43 received 1 +Thread 22 speaking: 43 +Thread 44 listening +Thread 18 speaking: 48 +Thread 46 listening +Thread 20 speaking: 59 +Thread 22 finished speaking: 43 +Thread 44 received 43 +Thread 18 finished speaking: 48 +Thread 46 received 48 +Thread 47 listening +Thread 23 speaking: 29 +Thread 48 listening +Thread 20 finished speaking: 59 +Thread 47 received 59 +Thread 23 finished speaking: 29 +Thread 48 received 29 +Thread 24 speaking: 90 +Thread 49 listening +Thread 0 speaking: 83 +Thread 45 listening +Thread 24 finished speaking: 90 +Thread 49 received 90 +Thread 0 finished speaking: 83 +Thread 45 received 83 +Thread 1 speaking: 10 +Thread 25 listening +Thread 1 finished speaking: 10 +Thread 25 received 10 +Thread 2 speaking: 4 +Thread 26 listening +Thread 2 finished speaking: 4 +Thread 26 received 4 +Thread 3 speaking: 94 +Thread 27 listening +Thread 4 speaking: 13 +Thread 3 finished speaking: 94 +Thread 27 received 94 +Thread 28 listening +Thread 4 finished speaking: 13 +Thread 28 received 13 +Thread 5 speaking: 94 +Thread 29 listening +Thread 5 finished speaking: 94 +Thread 29 received 94 +Thread 16 speaking: 29 +Thread 30 listening +Thread 16 finished speaking: 29 +Thread 30 received 29 +Thread 6 speaking: 79 +Thread 31 listening +Thread 6 finished speaking: 79 +Thread 31 received 79 +Thread 19 speaking: 56 +Thread 32 listening +Thread 7 speaking: 33 +Thread 33 listening +Thread 19 finished speaking: 56 +Thread 32 received 56 +Thread 7 finished speaking: 33 +Thread 33 received 33 +Thread 8 speaking: 27 +Thread 34 listening +Thread 9 speaking: 87 +Thread 35 listening +Thread 21 speaking: 56 +Thread 8 finished speaking: 27 +Thread 34 received 27 +Thread 9 finished speaking: 87 +Thread 35 received 87 +Thread 36 listening +Thread 10 speaking: 35 +Thread 37 listening +Thread 11 speaking: 55 +Thread 38 listening +Thread 21 finished speaking: 56 +Thread 36 received 56 +Thread 10 finished speaking: 35 +Thread 11 finished speaking: 55 +Thread 37 received 35 +Thread 38 received 55 +Thread 12 speaking: 90 +Thread 39 listening +Thread 13 speaking: 48 +Thread 40 listening +Thread 12 finished speaking: 90 +Thread 39 received 90 +Thread 13 finished speaking: 48 +Thread 40 received 48 +Thread 14 speaking: 81 +Thread 41 listening +Thread 15 speaking: 8 +Thread 42 listening +Thread 17 speaking: 67 +Thread 43 listening +Thread 14 finished speaking: 81 +Thread 41 received 81 +Thread 15 finished speaking: 8 +Thread 42 received 8 +Thread 17 finished speaking: 67 +Thread 43 received 67 +Thread 22 speaking: 53 +Thread 44 listening +Thread 18 speaking: 92 +Thread 46 listening +Thread 22 finished speaking: 53 +Thread 44 received 53 +Thread 18 finished speaking: 92 +Thread 46 received 92 +Thread 20 speaking: 28 +Thread 47 listening +Thread 23 speaking: 37 +Thread 48 listening +Thread 20 finished speaking: 28 +Thread 47 received 28 +Thread 23 finished speaking: 37 +Thread 48 received 37 +Thread 24 speaking: 64 +Thread 49 listening +Thread 0 speaking: 70 +Thread 45 listening +Thread 24 finished speaking: 64 +Thread 49 received 64 +Thread 0 finished speaking: 70 +Thread 45 received 70 +Thread 1 speaking: 80 +Thread 25 listening +Thread 1 finished speaking: 80 +Thread 25 received 80 +Thread 2 speaking: 23 +Thread 26 listening +Thread 2 finished speaking: 23 +Thread 26 received 23 +Thread 3 speaking: 13 +Thread 27 listening +Thread 4 speaking: 66 +Thread 28 listening +Thread 3 finished speaking: 13 +Thread 27 received 13 +Thread 4 finished speaking: 66 +Thread 28 received 66 +Thread 5 speaking: 54 +Thread 29 listening +Thread 5 finished speaking: 54 +Thread 29 received 54 +Thread 16 speaking: 91 +Thread 30 listening +Thread 16 finished speaking: 91 +Thread 30 received 91 +Thread 6 speaking: 22 +Thread 31 listening +Thread 6 finished speaking: 22 +Thread 31 received 22 +Thread 19 speaking: 72 +Thread 32 listening +Thread 7 speaking: 27 +Thread 33 listening +Thread 19 finished speaking: 72 +Thread 32 received 72 +Thread 7 finished speaking: 27 +Thread 33 received 27 +Thread 8 speaking: 29 +Thread 34 listening +Thread 9 speaking: 94 +Thread 35 listening +Thread 8 finished speaking: 29 +Thread 34 received 29 +Thread 9 finished speaking: 94 +Thread 35 received 94 +Thread 21 speaking: 75 +Thread 36 listening +Thread 10 speaking: 15 +Thread 11 speaking: 8 +Thread 21 finished speaking: 75 +Thread 36 received 75 +Thread 37 listening +Thread 38 listening +Thread 10 finished speaking: 15 +Thread 37 received 15 +Thread 11 finished speaking: 8 +Thread 38 received 8 +Thread 12 speaking: 13 +Thread 39 listening +Thread 13 speaking: 59 +Thread 40 listening +Thread 12 finished speaking: 13 +Thread 39 received 13 +Thread 13 finished speaking: 59 +Thread 40 received 59 +Thread 14 speaking: 65 +Thread 41 listening +Thread 15 speaking: 33 +Thread 42 listening +Thread 14 finished speaking: 65 +Thread 41 received 65 +Thread 15 finished speaking: 33 +Thread 42 received 33 +Thread 17 speaking: 92 +Thread 43 listening +Thread 17 finished speaking: 92 +Thread 43 received 92 +Thread 22 speaking: 35 +Thread 44 listening +Thread 18 speaking: 50 +Thread 46 listening +Thread 22 finished speaking: 35 +Thread 44 received 35 +Thread 18 finished speaking: 50 +Thread 46 received 50 +Thread 20 speaking: 35 +Thread 47 listening +Thread 23 speaking: 42 +Thread 48 listening +Thread 20 finished speaking: 35 +Thread 47 received 35 +Thread 23 finished speaking: 42 +Thread 48 received 42 +Thread 24 speaking: 12 +Thread 49 listening +Thread 0 speaking: 60 +Thread 45 listening +Thread 24 finished speaking: 12 +Thread 49 received 12 +Thread 0 finished speaking: 60 +Thread 45 received 60 +Thread 1 speaking: 98 +Thread 25 listening +Thread 1 finished speaking: 98 +Thread 25 received 98 +Thread 2 speaking: 24 +Thread 26 listening +Thread 2 finished speaking: 24 +Thread 26 received 24 +Thread 3 speaking: 73 +Thread 27 listening +Thread 4 speaking: 88 +Thread 28 listening +Thread 3 finished speaking: 73 +Thread 27 received 73 +Thread 4 finished speaking: 88 +Thread 28 received 88 +Thread 5 speaking: 72 +Thread 29 listening +Thread 5 finished speaking: 72 +Thread 29 received 72 +Thread 16 speaking: 37 +Thread 30 listening +Thread 16 finished speaking: 37 +Thread 30 received 37 +Thread 6 speaking: 52 +Thread 31 listening +Thread 6 finished speaking: 52 +Thread 31 received 52 +Thread 19 speaking: 30 +Thread 32 listening +Thread 7 speaking: 64 +Thread 19 finished speaking: 30 +Thread 32 received 30 +Thread 33 listening +Thread 7 finished speaking: 64 +Thread 33 received 64 +Thread 8 speaking: 80 +Thread 34 listening +Thread 9 speaking: 4 +Thread 8 finished speaking: 80 +Thread 34 received 80 +Thread 35 listening +Thread 21 speaking: 36 +Thread 36 listening +Thread 9 finished speaking: 4 +Thread 35 received 4 +Thread 21 finished speaking: 36 +Thread 36 received 36 +Thread 10 speaking: 70 +Thread 37 listening +Thread 11 speaking: 15 +Thread 38 listening +Thread 10 finished speaking: 70 +Thread 37 received 70 +Thread 11 finished speaking: 15 +Thread 38 received 15 +Thread 12 speaking: 85 +Thread 39 listening +Thread 13 speaking: 20 +Thread 40 listening +Thread 12 finished speaking: 85 +Thread 39 received 85 +Thread 13 finished speaking: 20 +Thread 40 received 20 +Thread 14 speaking: 13 +Thread 41 listening +Thread 15 speaking: 6 +Thread 42 listening +Thread 14 finished speaking: 13 +Thread 41 received 13 +Thread 15 finished speaking: 6 +Thread 42 received 6 +Thread 17 speaking: 19 +Thread 43 listening +Thread 17 finished speaking: 19 +Thread 43 received 19 +Thread 22 speaking: 19 +Thread 44 listening +Thread 18 speaking: 86 +Thread 22 finished speaking: 19 +Thread 44 received 19 +Thread 46 listening +Thread 20 speaking: 93 +Thread 47 listening +Thread 23 speaking: 68 +Thread 18 finished speaking: 86 +Thread 46 received 86 +Thread 20 finished speaking: 93 +Thread 47 received 93 +Thread 48 listening +Thread 24 speaking: 5 +Thread 49 listening +Thread 0 speaking: 2 +Thread 23 finished speaking: 68 +Thread 48 received 68 +Thread 24 finished speaking: 5 +Thread 49 received 5 +Thread 45 listening +Thread 0 finished speaking: 2 +Thread 45 received 2 +Thread 1 speaking: 38 +Thread 25 listening +Thread 1 finished speaking: 38 +Thread 25 received 38 +Thread 2 speaking: 19 +Thread 26 listening +Thread 2 finished speaking: 19 +Thread 26 received 19 +Thread 3 speaking: 31 +Thread 27 listening +Thread 4 speaking: 42 +Thread 28 listening +Thread 5 speaking: 25 +Thread 3 finished speaking: 31 +Thread 27 received 31 +Thread 4 finished speaking: 42 +Thread 28 received 42 +Thread 29 listening +Thread 5 finished speaking: 25 +Thread 29 received 25 +Thread 16 speaking: 94 +Thread 30 listening +Thread 6 speaking: 63 +Thread 16 finished speaking: 94 +Thread 30 received 94 +Thread 31 listening +Thread 6 finished speaking: 63 +Thread 31 received 63 +Thread 19 speaking: 67 +Thread 32 listening +Thread 7 speaking: 9 +Thread 19 finished speaking: 67 +Thread 32 received 67 +Thread 33 listening +Thread 7 finished speaking: 9 +Thread 33 received 9 +Thread 8 speaking: 77 +Thread 34 listening +Thread 8 finished speaking: 77 +Thread 34 received 77 +Thread 9 speaking: 5 +Thread 35 listening +Thread 21 speaking: 56 +Thread 36 listening +Thread 9 finished speaking: 5 +Thread 35 received 5 +Thread 21 finished speaking: 56 +Thread 36 received 56 +Thread 10 speaking: 18 +Thread 37 listening +Thread 11 speaking: 28 +Thread 38 listening +Thread 10 finished speaking: 18 +Thread 37 received 18 +Thread 11 finished speaking: 28 +Thread 38 received 28 +Thread 12 speaking: 55 +Thread 39 listening +Thread 13 speaking: 69 +Thread 40 listening +Thread 12 finished speaking: 55 +Thread 39 received 55 +Thread 13 finished speaking: 69 +Thread 40 received 69 +Thread 14 speaking: 34 +Thread 41 listening +Thread 15 speaking: 79 +Thread 42 listening +Thread 17 speaking: 54 +Thread 14 finished speaking: 34 +Thread 41 received 34 +Thread 15 finished speaking: 79 +Thread 42 received 79 +Thread 43 listening +Thread 17 finished speaking: 54 +Thread 43 received 54 +Thread 22 speaking: 54 +Thread 44 listening +Thread 22 finished speaking: 54 +Thread 44 received 54 +Thread 18 speaking: 49 +Thread 46 listening +Thread 20 speaking: 57 +Thread 47 listening +Thread 18 finished speaking: 49 +Thread 46 received 49 +Thread 20 finished speaking: 57 +Thread 47 received 57 +Thread 23 speaking: 78 +Thread 48 listening +Thread 24 speaking: 99 +Thread 49 listening +Thread 0 speaking: 31 +Thread 45 listening +Thread 23 finished speaking: 78 +Thread 48 received 78 +Thread 24 finished speaking: 99 +Thread 49 received 99 +Thread 0 finished speaking: 31 +Thread 45 received 31 diff --git a/proj1/nachos/threads/Communicator.class b/proj1/nachos/threads/Communicator.class index 2981b3b409a5fdc95dc617e77858adace170bc99..8e530b624157db14475dc68769664459f5b0f19e 100644 GIT binary patch literal 1440 zcmZvcT~8B16o%i~U05hvK+p=JA}R_+sRDi@f)y0SPZUE;l%<`>Lh0gm(f{I=ciwoT z;Um$+AK;xoz<*+l@0l$kXqvod&Yanq_c=4^w_l&X0vN(%3VU(39<3M<859{3Ip^Yh z3bje?f{TkO)Z>y=E{j|d85X%Jt45@HO=MKkF&Ece{YZ2l0r4-P1dx;N-(1-84-FWqogTd0t14 z{rM7ST4=&A&G=Cud3Dl>7XtDf`q#?x@@hFK_;DD~O^s; zMRVP4J-a()u2!1j`h{1kyb|eFN$VAM>kXd|3z05qzoKcal@AttXqEtTWC^p0#5R%S zCKA&`l9)&s6Uk#Dkr-_#=^ynNvrlk10_L)tP+5B&mWVClh}2}ipmuf>?mFr?te?%U zp>7kYbu{cuy`5=#XWIDDI55 z)n4KeCvcLPLJxYY{(q3i;@qP6+CUS7G2|6 zUdL&^oqjUr@C;`#PriUvp~@uAt5jq_mU9YytkuBI^mQ^h#SN0H`d&qyvxgHaO=8g& zI-3*LTci`G&F|6um-}rZgDo5+Zf2+%PVU+CYKyPq1CLJt&m+z8RoWbpzdK&WC=v6- wxk0#b&P?!k3wJQd>$=SgyMyPL`U`HZ3TJV?{|}rC>nDz@E`sHFfQ2)^0U!Sppa1{> delta 274 zcmYjLI|{-;6r8tfvYHq*YElYf;RhR050L|S1PeiIv=lr_#LD z`{sRS=Dln9*2(Mhcmh}<4WQ98=o=(?Buf7nCOB%69eN9y?a|3rRK-@&Et; diff --git a/proj1/nachos/threads/KThread$1.class b/proj1/nachos/threads/KThread$1.class index 13f7e4debb679261335156d8a9f69f090b36d9bc..725dddd4f71d3eaa7636857535ba71397d64b1d1 100644 GIT binary patch delta 23 fcmcb~a+77l6-LG>ldm#*vQA@QXP7=&naK0pKk1x!_J6LtUq diff --git a/proj1/nachos/threads/KThread$ComTest.class b/proj1/nachos/threads/KThread$ComTest.class new file mode 100644 index 0000000000000000000000000000000000000000..f4046274f313e73154b23c2508a8597e976d4852 GIT binary patch literal 1648 zcmaJ>U2_vv7=F%4+D*1wXwz@oVo=aDK!X)gX^TPy4GkZ*1+DnCO%BbL&2DCQQ}NDU zp&r=Jawri#PF>fwxU$Fqgpzz0d1qA%jJ|pEU6f-ZgOwr!!c};ys+{pNf2{Z>#_XC0lR)p0+oZ7t+cv@nHf3;Xb*z(BW0 z3m0+8z=sxAuqrSX>s{O1EUiX?<87X9Ic`k_tS`wrZ($9W^}<~H@?lfi*9kj8`A7KJ zz`BJ`aMi%47Cyu00>k-hWIn8`+77INFD!fs+rWl}Dp;zScbza&9$i^bxTYn6sw!uj zh6XkT_H{M5i^YFSi&MY2v8Af)MD9s7D=p7UnrL|HMpX8wP8Z5EoS=l0q~@=g1ji}m zx2PXU_;>u$B~lTQ5M}EY^xDm)(hWLNNDw>tnxA<_)S-}uQw;bVbtdu?(n(w4Ss)z@ z#RWZ`5L?sK>A4)Ck^f7GjhgHtZ|C13&=Yqt;e+7mE^yL#Ra;hpr(D8q*A7V1X!l^B z(sE`w+~pva3uM2to#?X1Y1X06>0$3px*pFyJ2Bd2*y%Bcc!Ez1%Yfv^Y3B1F^+3lv zsNYZROT4X9p5nf@cn_jDc^9&H_%2dE$H14l=J+T<{Dri5h^+VaksrJ#8_j(&2?rpXirWiQ61fkm0Y8JWeFG!aS*+cJmmWFt^y6HsLHWKGtWj@ua68Fv6h zb}WGxQ{`HaX*6*<3R>*#zPE2K=}y9;|x)ZCm9kLPcfu1o@U5lJi{=N Z@hrm(#^aNN*(zBtGjK6pnS7B=3IID#BEkRw diff --git a/proj1/nachos/threads/KThread$PingTest.class b/proj1/nachos/threads/KThread$PingTest.class index ab7300bd2079eae3bf1b72c32ec34feca6cbc827..b5db3551848422e1c74f17e111092b14c4c3c87a 100644 GIT binary patch delta 55 zcmX@ed609%I%eLf3@nV(7&sZHGw?Can7o^LndBTGYc7Kf<2(js#sv(%j0+h;fb1y7 J#gnU8+ySJM4vGK( delta 55 zcmX@ed609%I%eJ}3@nUO88{iIG4L@?pS+uSndEFBYYu}9<6H)1#`z4sj0+e-fb1y7 JMU$&o+ySF_4u1du diff --git a/proj1/nachos/threads/KThread.class b/proj1/nachos/threads/KThread.class index 4bc4bf6c23b4eb3f19f0a314e7c3c9376f64d98d..807defafc832a98516693ca2aff0bcbc88d87d96 100644 GIT binary patch delta 3323 zcmaJ@d3;pW75>i4WZs*Xm&_!Aw)wUgf$=uOCS=&fizI*Px zFy+mu1INxCJPe>#76;(RVVA=XTs(!RU980s-TR@9qbh&o;2D+A>hPQnKelnqg*SNY zc^f}*5yVgR%g=25+(p*lmtO?%OZ>{k3;4Bu`;Cj=;&=M>_YMaBpcenA!=H387XNJH zFD{C3M28n0{8i;k4qjIIii5xDNy_88{=0g6!o{n2&Bg0@!^S^cRN+lE@J~JXFWo+= zv$xW43a54UZwLR;?f(uq_@C;&?c)D-FQ`k?f^GKj$}HLMTcdCBO~?j zC|!gd$+jiO#Y!BpWweV`lFI?7ZOIeZ^SZmPi1hUfyrx(z(mSuSwXZMIXG^{y(9qf1 zYrfi2Ajp{49cz#FN4sM+s$okZBe^^pTYp7l?CRQzP>y4-E}gom$Vr!7UE6ibPR9oXri3$b{& zKX2^y=n;e}HpODCU6JQ`xW$%IPs(JhE#;n!lL`;FVXH0UJ*mV2j}Bif@O8CDV;&w+%iq=ECfpovu=BI4 zWCFt}t{_B}R12tvFJX7Q-!9Fml8K&7k{Vkkdr~V?Y?A}J zlbIUWH#EvR4|~+YgV-5=%g$ag3p)i_jnP=NuY=i4L^!k9li6~KEpt4n*W~%0 z4LZ!#y>F>%W=k~E+5Q1dJVfl(PPlZQOlRSiG5K4DaB+u1%~$^x;6VIdXL4i*b}SNWoa$*}FT?n=(*R(e$B2 z8-FEAcvsf4L5)BzqSyezN4c`l$r*{pc`mxqlic6Pb?>lsAJ_fE)|pWG( z#%F;FV}6&K=ch)*=LW+w)Q1eDa9jW%Hv?E`u)>T_b25mfGtHVta4$Zm5b+(sar1|? zFK4%0hLKo4Ogo&^4kxq|sYt6=AoAM)oek!gRJg|EYUXOqFc3QlVr#3RhTx0Xt(tVO z+N_!1%Eu9Sgc}yrCqK7Af(>OQH31{qG!n{7cv{bu9*W09*BX*c@LZ*h{3xE4(kqF$*U!2d|Oe zuP1$*%A2Rz!3DUB3>;gzfxBa5bB)3cR{3qhy~F$bF0bNQUcYmgiStG=1u~5ad|Ql~ zf7IHgsy2rChWL>u4$36Je`INxAs$!(ER-NFlTgwV@QM!ISwB)H*2^fOeJ6qW#Hfz7 zidoLoL2`+ik4h=TBq_#BDMf>nVUdi*QmMd|QfY7pnXn>(JBhkOOb8%_bs+16^x`9H z9KR{tRGW-frXoY8qe$vdA+u>{4yH-{g+ys5bMnV>Aj z2x(46X_HwGCp(h^IuO*pWa%qxklM3XFIFVOdTB#IBJgBA{fweoHefnsopfT3#Ly@` zXqJshbYMv$R-gWPFnH-X1LmR{ddX%K$n_|f8!$y~WDRa+4Q|15xfLyP8?KeDh{`r} z$?d~1W5enaKi+!{5LNyN{{}B8whp?(8uW~v@6V%kZ>A`vr znKt&x85D*b?8gBU;HlB!k7!K>J8IFez*6x&ttQVN)Ys3n<9tf}`5uF4Hx}d51ziV+ z5^1|Cx4b&Z87soqZ#^8V1D+K{$l5?ZpQN^h@8ep^8d_f!e<(LQdp&0zJ=8*Gd*8Hd5fWe|)Zg9*AqKF}h8!4BJj?F_e} zqTy83N<*lFre-GHO)3Qg6$H!FB+Ja~ZbW8kQQ1ui6#YKG9nKD)`sa6jzTfBad!FZg zPfmZaVd&V|$BqD~mj!-g;1QR@qb?r9As1_LSkE4}aYW~%4xZ5YyE=SNhbL`(--S0U z_LPmMU1Z}Kz4?KSXI%t`Z;tu#LpR{+a)%Y_VUedv6{JD)^ zxG2M69e(NHS33XN!Ebc_t%H|UlJoC$e_XBoy^9n0gNs-2M;ouYsKuXD!D}k`x*orw zt3PMrFF2{IzdHDv9{+vF!JCTxhl_vWUuxdJ)uaEYCvWNMZ52P|;J-Sbc5p^v?>Kl@ zWzVWB?-43+L=|dRBuf!*2be3+%jUK*) zUA7c>QYb|pc4C)@P3RGX;(Pp|g&wX#Oc1Ev5{q^8Mmoy}yZa*@ofAE5#nm3JL(IdF zO60~m)_3;}gop13!b|(sZ}RYQd_qtdf5BI{hTKx@;gh&U5KIX75)+L@!pj#ld)S6+ zZ7K0&w3OO1#*;EB_i#OKuw|?##$5^jm7^H*~lL9}^VBcVre6c`{zA z1itd>3SCYR2rc~_?vC%ZD@w*owI>s$#+C~_nIyHgO!g!!Q`Eve{(_-8b)RbLu-n7e zNi9<~BwyC}O!M$fRrVF^qWR5{u4pXA@Fv31Snf%^xoL^Uq673P^`=3l+cLwGnM!aI zLr!lB(H);y%^77q@!&s;<6`UGW-!>7040EwGGFeZI0LWt^{< zp@p%*NPqbfCKFXp9*Fd87|yVAjbLRmNAdUb2-#1$CJ0$Izhl#60?p&NoIcNR8s#Z2V77`=!k&-=LFoU*^1`~H;u0QZ9_ z`z_pGk+Q#%+)QfNs)Sh_FUu-e6r&nf)7i|-Iy19A%*;nKGvmuyG_5&Xn#`Pw;Kz2{ z%JWafZ_28u++k!bj^mMqD%{3ZIxM$|>8J%}1fR>gWk>~Eki)SSX;vBh)+A(EwaBv? zFxHxjN!C2f#$?P#7;Tt}c1&ZW8qkU9jLZyNj+xkkMtU;`pC*e(X3(Y27&BGvC|K_i zDmLOkwNbxY)$^(a@t3kgv($zx_&8pOG%TbmEru&Z_cSEKT)JYN5h}PHcPK@?GBDx7 z5p)~-;fIiiWhv-T5*f%F7t5)hQ%)lEl{6B0_K%?p7oX z44XaUTk|md5Awi*+LXa#FqcN6lAfRuZ3hYP#gtaLibL_LoCy;~fc+`JiX`wJd|rX^ z!JMh9RkoOFK#S5Dm;l>X5Z9uV-LQ;ZOBI)!u#QdIKNj~gorUtF@dZASWirDL>m3C7 zK>B(tOrs(#c-4AUQNy@{sg+G<$56bM`P0mKAr&m;o33Ig*3hF3xW}j*ezmTI%B3j5 z9(<9E8g~b2jQgl2pV+%(k_>!~}>MiCs>D&(dCKaP_$@&58@r z8L%mqu!q&)e&*@}sAp#x!8RnYiI=aUdcSs2LvuKH%VMROj7*M?GJ1zliN{HGl&Sp$ z=Hf}Z`V=m~(^!dTnEcOTJ&qZ7SW)$cj4jNNZO!}eMM^eCD;qD9>^Rfo1Z(9L*2k-u zhu4_fuP1Gr&dSs1;2hlrhK|kH(3RvbovL)hulyG2PO+9xV+zi&^xkFJoi#uoWCj8J zUKrS2`D@!0HjeRzq@#qjS1Atvxm?VWOf-pyMUsU}Bs*ydSfV2}n*raHCdnt;{Rz&+ zq3*THS;f#nipW`l8YxAcl%Y|^VZKygu~ec>CSZk3G`z!^urk40N9;%@_~GL_FzbZr z#c!xFJW$YDpY&H6kVUu3q!HEppw#iRF+=8^3zT*;SHDdLxT9eFLIs*!kQUgo2$`}N z*>VwbWl7RYo0+vY*_j;BfNbqcmVQ|c)7u5Bmnf6TdRYg*bi$Jjw6hywiDD+_*|G`q zq!%sHho!PP$qrnc@HI{U4GiCXg+r!LO?t_dD3z_KlB>}m*YFLt@ePJ>sa%hCxdH2B zJEC$UdgbO6&REL3_>o@MB!MQWW|{DlX;f@0sxiIGv{2bWlW#+z>`b93N}*uR<~3;n zJU9%eueX~f0z?9X!H+zGnnTEFKZI57X~B;k#AOGu%0bu)Vu6*5l~x`)tx&+hL)fP-5;4+b55iK4)FwM- zbc(a-*sm{4^uvh{;?d&#e0|g5jy#4{@ts8I-YBjLC-cUd!7tz}I94M(Yc>Mb94a|r aR2{@R&Nb{btKxG@3bI?d({5I4X1otfb4j-V diff --git a/threads/Communicator.java b/threads/Communicator.java index 47c0a6b..957f30f 100644 --- a/threads/Communicator.java +++ b/threads/Communicator.java @@ -9,11 +9,13 @@ import nachos.machine.*; * be a time when both a speaker and a listener are waiting, because the two * threads can be paired off at this point. */ -public class Communicator { +public class Communicator +{ /** * Allocate a new communicator. */ - public Communicator() { + public Communicator() + { } /** @@ -26,7 +28,26 @@ public class Communicator { * * @param word the integer to transfer. */ - public void speak(int word) { + public void speak(int word) + { + condLock.acquire(); + if(protect==1) condProtect.sleep(); + speakers++; + protect=1; + if(listeners==0) + { + condSpeaker.sleep(); + message=word; + condPaired.wake(); + } + else + { + message=word; + listeners--; + speakers--; + condListener.wake(); + } + condLock.release(); } /** @@ -35,7 +56,34 @@ public class Communicator { * * @return the integer transferred. */ - public int listen() { - return 0; + public int listen() + { + int ret=0; + condLock.acquire(); + listeners++; + if(speakers==0) condListener.sleep(); + else + { + speakers--; + listeners--; + condSpeaker.wake(); + condPaired.sleep(); + } + ret=message; + protect=0; + condProtect.wake(); + condLock.release(); + return ret; } + + private int speakers=0; + private int listeners=0; + private int protect=0; + private int message=0; + private Lock condLock=new Lock(); + private Condition condProtect=new Condition(condLock); + private Condition condSpeaker=new Condition(condLock); + private Condition condListener=new Condition(condLock); + private Condition condPaired=new Condition(condLock); } + diff --git a/threads/KThread.java b/threads/KThread.java index 62f9108..ba6c52c 100644 --- a/threads/KThread.java +++ b/threads/KThread.java @@ -1,6 +1,7 @@ package nachos.threads; import nachos.machine.*; +import java.util.Random; /** * A KThread is a thread that can be used to execute Nachos kernel code. Nachos @@ -500,6 +501,44 @@ public class KThread { private int duration; } + private static class ComTest implements Runnable + { + ComTest(int id,Communicator com) + { + this.id=id; + this.com=com; + } + public void run() + { + if(id<=48) + { + Random rand=new Random(); + while(true) + { + int x=rand.nextInt(100); + System.out.println("Thread "+id+" speaking: "+x); + com.speak(x); + System.out.println("Thread "+id+" finished speaking: "+x); + ThreadedKernel.alarm.waitUntil(10000000); + //System.out.println("Thread "+id+" slept for "+(after-before)+" ticks"); + } + } + else + { + while(true) + { + System.out.println("Thread "+id+" listening"); + int x=com.listen(); + System.out.println("Thread "+id+" received "+x); + ThreadedKernel.alarm.waitUntil(10000000); + //System.out.println("Thread "+id+" slept for "+(after-before)+" ticks"); + } + } + } + private int id; + private Communicator com; + } + /** * Tests whether this module is working. */ @@ -525,11 +564,18 @@ public class KThread { */ //Test for waitUntil + /* new KThread(new AlarmTest(1,10000000)).fork(); new KThread(new AlarmTest(2,10000000)).fork(); new KThread(new AlarmTest(3,10000000)).fork(); new KThread(new AlarmTest(4,10000000)).fork(); new AlarmTest(0,50000000).run(); + */ + + //Test for Communicator + Communicator com=new Communicator(); + for(int i=1;i<50;i++) new KThread(new ComTest(i,com)).fork(); + new ComTest(0,com).run(); }