You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2016/03/19 17:32:55 UTC

[2/2] trafficserver git commit: [TS-4256] flagging aborts and avoiding consuming the reader This closes #511.

[TS-4256] flagging aborts and avoiding consuming the reader
This closes #511.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/1e9c9484
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/1e9c9484
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/1e9c9484

Branch: refs/heads/master
Commit: 1e9c9484cacbfaa4ded7ad2c7e7baad74cb0f4f6
Parents: 1448b4b
Author: Daniel Vitor Morilha <dm...@yahoo-inc.com>
Authored: Fri Mar 4 11:25:54 2016 -0800
Committer: Alan M. Carroll <am...@apache.org>
Committed: Sat Mar 19 11:32:30 2016 -0500

----------------------------------------------------------------------
 plugins/experimental/inliner/inliner-handler.cc | 3 ++-
 plugins/experimental/inliner/inliner-handler.h  | 9 ++++++---
 2 files changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/1e9c9484/plugins/experimental/inliner/inliner-handler.cc
----------------------------------------------------------------------
diff --git a/plugins/experimental/inliner/inliner-handler.cc b/plugins/experimental/inliner/inliner-handler.cc
index d075661..09cf3cf 100644
--- a/plugins/experimental/inliner/inliner-handler.cc
+++ b/plugins/experimental/inliner/inliner-handler.cc
@@ -33,7 +33,7 @@ namespace ats
 namespace inliner
 {
   Handler::Handler(const TSIOBufferReader r, ats::io::IOSinkPointer &&i)
-    : ioSink_(i), sink_(ioSink_->branch()), sink2_(sink_->branch()), reader_(TSIOBufferReaderClone(r)), counter_(0)
+    : ioSink_(i), sink_(ioSink_->branch()), sink2_(sink_->branch()), reader_(TSIOBufferReaderClone(r)), counter_(0), abort_(false)
   {
     assert(ioSink_);
     assert(sink_);
@@ -141,6 +141,7 @@ namespace inliner
   void
   Handler::abort(void)
   {
+    abort_ = true;
     assert(ioSink_);
     ioSink_->abort();
   }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/1e9c9484/plugins/experimental/inliner/inliner-handler.h
----------------------------------------------------------------------
diff --git a/plugins/experimental/inliner/inliner-handler.h b/plugins/experimental/inliner/inliner-handler.h
index d7caba1..692a5e8 100644
--- a/plugins/experimental/inliner/inliner-handler.h
+++ b/plugins/experimental/inliner/inliner-handler.h
@@ -38,13 +38,16 @@ namespace inliner
     ats::io::SinkPointer sink_, sink2_;
     const TSIOBufferReader reader_;
     size_t counter_;
+    bool abort_;
 
     ~Handler()
     {
       assert(reader_ != NULL);
-      const int64_t available = TSIOBufferReaderAvail(reader_);
-      if (available > 0) {
-        TSIOBufferReaderConsume(reader_, available);
+      if (!abort_) {
+        const int64_t available = TSIOBufferReaderAvail(reader_);
+        if (available > 0) {
+          TSIOBufferReaderConsume(reader_, available);
+        }
       }
       TSIOBufferReaderFree(reader_);
     }