blob: dcf4e1fb1050ff754d582bc4bec3386970078bf9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.jdisc.http.server.jetty;
import java.util.concurrent.atomic.AtomicBoolean;
/**
* @author tonytv
*/
public class OneTimeRunnable {
private final Runnable runnable;
private final AtomicBoolean hasRun = new AtomicBoolean(false);
public OneTimeRunnable(Runnable runnable) {
this.runnable = runnable;
}
public void runIfFirstInvocation() {
boolean previous = hasRun.getAndSet(true);
if (!previous) {
runnable.run();
}
}
}
|