This is an automated email from the ASF dual-hosted git repository.
shinrich pushed a commit to branch master
in repository https://git-dual.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new 3286600 TS-3429: Fix reference counting for TSContScheduleEvery.
This closes #576.
3286600 is described below
commit 3286600d90be4b6291b35867720adbd864f580ea
Author: shinrich <[email protected]>
AuthorDate: Mon Apr 18 10:15:16 2016 -0500
TS-3429: Fix reference counting for TSContScheduleEvery. This closes #576.
---
proxy/InkAPI.cc | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index f525ee3..7e1ec07 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -990,7 +990,16 @@ INKContInternal::handle_event(int event, void *edata)
Warning("INKCont Deletable but not deleted %d", m_event_count);
}
} else {
- return m_event_func((TSCont)this, (TSEvent)event, edata);
+ int retval = m_event_func((TSCont)this, (TSEvent)event, edata);
+ if (edata && event == EVENT_INTERVAL) {
+ Event *e = reinterpret_cast<Event *>(edata);
+ if (e->period != 0) {
+ // In the interval case, we must re-increment the m_event_count for
+ // the next go around. Otherwise, our event count will go negative.
+ ink_release_assert(ink_atomic_increment((int *)&this->m_event_count,
1) >= 0);
+ }
+ }
+ return retval;
}
return EVENT_DONE;
}
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].