Skip to content

Commit 228f9d1

Browse files
committed
Fix ConsumeDriver running status
1 parent 3549537 commit 228f9d1

File tree

1 file changed

+10
-1
lines changed
  • apm-commons/apm-datacarrier/src/main/java/org/apache/skywalking/apm/commons/datacarrier/consumer

1 file changed

+10
-1
lines changed

apm-commons/apm-datacarrier/src/main/java/org/apache/skywalking/apm/commons/datacarrier/consumer/ConsumeDriver.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
* Pool of consumers <p> Created by wusheng on 2016/10/25.
2828
*/
2929
public class ConsumeDriver<T> implements IDriver {
30-
private boolean running;
30+
private volatile boolean running;
3131
private ConsumerThread[] consumerThreads;
3232
private Channels<T> channels;
3333
private ReentrantLock lock;
@@ -88,6 +88,9 @@ public void begin(Channels channels) {
8888
}
8989
lock.lock();
9090
try {
91+
if (running){
92+
return;
93+
}
9194
this.allocateBuffer2Thread();
9295
for (ConsumerThread consumerThread : consumerThreads) {
9396
consumerThread.start();
@@ -124,8 +127,14 @@ private void allocateBuffer2Thread() {
124127

125128
@Override
126129
public void close(Channels channels) {
130+
if (!running) {
131+
return;
132+
}
127133
lock.lock();
128134
try {
135+
if (!running) {
136+
return;
137+
}
129138
this.running = false;
130139
for (ConsumerThread consumerThread : consumerThreads) {
131140
consumerThread.shutdown();

0 commit comments

Comments
 (0)