Skip to content

Commit

Permalink
Suppress findbugs warnings for volatile increment.
Browse files Browse the repository at this point in the history
  • Loading branch information
chumer committed Aug 28, 2020
1 parent c1b14df commit e421029
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ boolean isCurrent() {
return getThread() == Thread.currentThread();
}

/*
* Volatile increment is safe if only one thread does it.
*/
@SuppressFBWarnings("VO_VOLATILE_INCREMENT")
void enter(PolyglotEngineImpl engine, PolyglotContextImpl profiledContext, boolean notify) {
assert Thread.currentThread() == getThread();
enteredCount++;
Expand All @@ -115,6 +119,10 @@ boolean isPolyglotThread(PolyglotContextImpl c) {
return false;
}

/*
* Volatile decrement is safe if only one thread does it.
*/
@SuppressFBWarnings("VO_VOLATILE_INCREMENT")
void leave(PolyglotEngineImpl engine, PolyglotContextImpl profiledContext, boolean notify) {
assert Thread.currentThread() == getThread();
if (notify) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* The Universal Permissive License (UPL), Version 1.0
*
* Subject to the condition set forth below, permission is hereby granted to any
* person obtaining a copy of this software, associated documentation and/or
* data (collectively the "Software"), free of charge and under any and all
* copyright rights in the Software, and any and all patent rights owned or
* freely licensable by each licensor hereunder covering either (i) the
* unmodified Software as contributed to or provided by such licensor, or (ii)
* the Larger Works (as defined below), to deal in both
*
* (a) the Software, and
*
* (b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
* one is included with the Software each a "Larger Work" to which the Software
* is contributed by such licensors),
*
* without restriction, including without limitation the rights to copy, create
* derivative works of, display, perform, and distribute the Software and make,
* use, sell, offer for sale, import, export, have made, and have sold the
* Software and the Larger Work(s), and to sublicense the foregoing rights on
* either these or other terms.
*
* This license is subject to the following condition:
*
* The above copyright notice and either this complete permission notice or at a
* minimum a reference to the UPL must be included in all copies or substantial
* portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package com.oracle.truffle.polyglot;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
* Used to suppress <a href="http://findbugs.sourceforge.net">FindBugs</a> warnings.
*/
@Retention(RetentionPolicy.CLASS)
@interface SuppressFBWarnings {
/**
* The set of FindBugs
* <a href="http://findbugs.sourceforge.net/bugDescriptions.html">warnings</a> that are to be
* suppressed in annotated element. The value can be a bug category, kind or pattern.
*/
java.lang.String[] value();
}

0 comments on commit e421029

Please sign in to comment.