Skip to content

Commit

Permalink
#747: fix dead lock in leshan-client-demo
Browse files Browse the repository at this point in the history
  • Loading branch information
sbernard31 committed Oct 8, 2019
1 parent 6ac723c commit 2c72d85
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ public void removeResourceChangedListener(ResourceChangedListener listener) {
listeners.remove(listener);
}

/**
* To be used to notify that 1 or several resources change.
* <p>
* This method SHOULD NOT be called in a synchronize block or any thread synchronization tools to avoid any risk of
* deadlock.
* <p>
* Calling this method is needed to trigger NOTIFICATION when an observe relation is established.
*
* @param resourceIds
*/
public void fireResourcesChange(int... resourceIds) {
for (ResourceChangedListener listener : listeners) {
listener.resourcesChanged(resourceIds);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ private double getTwoDigitValue(double value) {
return toBeTruncated.setScale(2, RoundingMode.HALF_UP).doubleValue();
}

private synchronized void adjustTemperature() {
private void adjustTemperature() {
float delta = (rng.nextInt(20) - 10) / 10f;
currentTemp += delta;
Integer changedResource = adjustMinMaxMeasuredValue(currentTemp);
Expand All @@ -86,8 +86,7 @@ private synchronized void adjustTemperature() {
}
}

private Integer adjustMinMaxMeasuredValue(double newTemperature) {

private synchronized Integer adjustMinMaxMeasuredValue(double newTemperature) {
if (newTemperature > maxMeasuredValue) {
maxMeasuredValue = newTemperature;
return MAX_MEASURED_VALUE;
Expand Down

0 comments on commit 2c72d85

Please sign in to comment.