[
https://issues.apache.org/jira/browse/GEODE-488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirk Lund updated GEODE-488:
----------------------------
Comment: was deleted
(was: A Pivotal Tracker story has been created for this Issue:
https://www.pivotaltracker.com/story/show/106767026)
> OffHeapMemoryMonitor deliverNextAbnormalEvent logic needs review
> ----------------------------------------------------------------
>
> Key: GEODE-488
> URL: https://issues.apache.org/jira/browse/GEODE-488
> Project: Geode
> Issue Type: Task
> Reporter: Darrel Schneider
> Assignee: Darrel Schneider
> Fix For: 1.0.0-incubating.M1
>
>
> OffHeapMemoryMonitor deliverNextAbnormalEvent logic needs review.
> It looks like we set it to true but then don't call updateStateAndSendEvent
> which is the only code that uses it.
> It only uses it if the amount of off-heap memory has changed.
> The original intent of it was to deliver an event if the amount of memory has
> changed but the non-normal state has not.
> This code might be ok; it just needs review.
> {code}
> while (!this.stopRequested) {
> updateStateAndSendEvent(lastOffHeapMemoryUsed);
> synchronized (this) {
> if (lastOffHeapMemoryUsed == this.offHeapMemoryUsed &&
> !this.stopRequested) {
> try {
> do {
> this.wait(1000);
> if (this.offHeapMemoryUsed == lastOffHeapMemoryUsed) {
> // The wait timed out. So tell the OffHeapMemoryMonitor
> // that we need an event if the state is not normal.
> deliverNextAbnormalEvent();
> // TODO: don't we need a "break" here?
> // As it is we set deliverNextAbnormalEvent
> // but then go back to sleep in wait.
> // We need to call updateStateAndSendEvent
> // which tests deliverNextAbnormalEvent.
> // But just adding a break is probably not enough.
> // We only set deliverNextAbnormalEvent if the wait
> // timed out which means that the amount of
> offHeapMemoryUsed
> // did not change.
> // But in updateStateAndSendEvent we only deliver an
> // abnormal event if the amount of memory changed.
> // This code needs to be reviewed with Swapnil but
> // it looks to Darrel like deliverNextAbnormalEvent
> // can be removed.
> } else {
> // we have been notified so exit the inner while loop
> // and call updateStateAndSendEvent.
> lastOffHeapMemoryUsed = this.offHeapMemoryUsed;
> break;
> }
> } while (true);
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)