Skip to content

Commit 9a05d03

Browse files
Merge pull request #96 from ankgoyalEXP/dev_Ankit
chaning arrayList to linkedList and releasing the semaphore
2 parents 1354b0d + 1c87d16 commit 9a05d03

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

core/src/main/java/com/expedia/www/haystack/client/dispatchers/InMemoryDispatcher.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717
package com.expedia.www.haystack.client.dispatchers;
1818

1919
import java.io.IOException;
20-
import java.util.ArrayList;
2120
import java.util.Collection;
2221
import java.util.Collections;
22+
import java.util.LinkedList;
2323
import java.util.List;
2424
import java.util.concurrent.Semaphore;
2525

@@ -44,9 +44,9 @@ public class InMemoryDispatcher implements Dispatcher {
4444

4545
public InMemoryDispatcher(Metrics metrics, int limit) {
4646
limiter = new Semaphore(limit);
47-
reported = new ArrayList<>();
48-
received = new ArrayList<>();
49-
flushed = new ArrayList<>();
47+
reported = new LinkedList<>();
48+
received = new LinkedList<>();
49+
flushed = new LinkedList<>();
5050

5151
// held in the registry a reference; but we don't need a local reference
5252
Gauge.builder("reported", reported, Collection::size).register(metrics);
@@ -75,6 +75,7 @@ public void dispatch(Span span) {
7575

7676
reported.add(span);
7777
received.add(span);
78+
limiter.release();
7879
}
7980
}
8081
}
@@ -84,7 +85,7 @@ public void flush() throws IOException {
8485
synchronized (this) {
8586
try (Sample timer = flushTimer.start()) {
8687
flushed.addAll(reported);
87-
reported.clear();
88+
reported = new LinkedList<>();
8889
}
8990
}
9091
}

core/src/main/java/com/expedia/www/haystack/client/dispatchers/RemoteDispatcher.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,5 +232,4 @@ public RemoteDispatcher build() {
232232
return new RemoteDispatcher(metrics, client, acceptQueue, flushInterval, shutdownTimeout, executor);
233233
}
234234
}
235-
236235
}

core/src/main/java/com/expedia/www/haystack/client/dispatchers/clients/InMemoryClient.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616
*/
1717
package com.expedia.www.haystack.client.dispatchers.clients;
1818

19-
import java.util.ArrayList;
2019
import java.util.Arrays;
2120
import java.util.Collection;
2221
import java.util.Collections;
22+
import java.util.LinkedList;
2323
import java.util.List;
2424
import java.util.concurrent.Semaphore;
2525

@@ -50,9 +50,9 @@ public class InMemoryClient implements Client<Span> {
5050

5151
public InMemoryClient(Metrics metrics, int limit) {
5252
limiter = new Semaphore(limit);
53-
total = new ArrayList<>();
54-
received = new ArrayList<>();
55-
flushed = new ArrayList<>();
53+
total = new LinkedList<>();
54+
received = new LinkedList<>();
55+
flushed = new LinkedList<>();
5656

5757
this.sendTimer = Timer.builder("send").register(metrics);
5858
this.sendExceptionCounter = Counter.builder("send").tag(new Tag("state", "exception")).register(metrics);
@@ -72,6 +72,7 @@ public boolean send(Span span) {
7272
limiter.acquire();
7373
total.add(span);
7474
received.add(span);
75+
limiter.release();
7576
return true;
7677
} catch (InterruptedException e) {
7778
sendExceptionCounter.increment();
@@ -92,7 +93,7 @@ public void flush() {
9293
try (Sample timer = flushTimer.start()) {
9394
LOGGER.info("Client flushed");
9495
flushed.addAll(received);
95-
received.clear();
96+
received = new LinkedList<>();
9697
}
9798
}
9899

0 commit comments

Comments
 (0)