Call reachabilityFence inside finally blocks (#7001)

This commit is contained in:
David Vo
2024-08-24 23:49:46 +10:00
committed by GitHub
parent 36ff22a439
commit 88fc46da22
2 changed files with 36 additions and 30 deletions

View File

@@ -117,31 +117,34 @@ public final class CameraServer {
@Override
public void close() {
if (m_booleanValueEntry != null) {
m_booleanValueEntry.close();
try {
if (m_booleanValueEntry != null) {
m_booleanValueEntry.close();
}
if (m_integerValueEntry != null) {
m_integerValueEntry.close();
}
if (m_stringValueEntry != null) {
m_stringValueEntry.close();
}
if (m_minPublisher != null) {
m_minPublisher.close();
}
if (m_maxPublisher != null) {
m_maxPublisher.close();
}
if (m_stepPublisher != null) {
m_stepPublisher.close();
}
if (m_defaultPublisher != null) {
m_defaultPublisher.close();
}
if (m_choicesPublisher != null) {
m_choicesPublisher.close();
}
} finally {
Reference.reachabilityFence(m_videoListener);
}
if (m_integerValueEntry != null) {
m_integerValueEntry.close();
}
if (m_stringValueEntry != null) {
m_stringValueEntry.close();
}
if (m_minPublisher != null) {
m_minPublisher.close();
}
if (m_maxPublisher != null) {
m_maxPublisher.close();
}
if (m_stepPublisher != null) {
m_stepPublisher.close();
}
if (m_defaultPublisher != null) {
m_defaultPublisher.close();
}
if (m_choicesPublisher != null) {
m_choicesPublisher.close();
}
Reference.reachabilityFence(m_videoListener);
}
BooleanEntry m_booleanValueEntry;

View File

@@ -74,13 +74,16 @@ public class AnalogTrigger implements Sendable, AutoCloseable {
@Override
public void close() {
SendableRegistry.remove(this);
AnalogJNI.cleanAnalogTrigger(m_port);
m_port = 0;
if (m_ownsAnalog && m_analogInput != null) {
m_analogInput.close();
try {
SendableRegistry.remove(this);
AnalogJNI.cleanAnalogTrigger(m_port);
m_port = 0;
if (m_ownsAnalog && m_analogInput != null) {
m_analogInput.close();
}
} finally {
Reference.reachabilityFence(m_dutyCycle);
}
Reference.reachabilityFence(m_dutyCycle);
}
/**