Repository: trafficserver
Updated Branches:
  refs/heads/master cb6e6f6a8 -> 28fd1cc4b


TS-2253: PluginVC::process_close Segmentation fault


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

Branch: refs/heads/master
Commit: 28fd1cc4b3fb66b63675ba08a167f886a739d7bf
Parents: cb6e6f6
Author: bettydramit <[email protected]>
Authored: Tue May 20 15:08:40 2014 -0700
Committer: Bryan Call <[email protected]>
Committed: Tue May 20 15:09:42 2014 -0700

----------------------------------------------------------------------
 proxy/PluginVC.cc | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/28fd1cc4/proxy/PluginVC.cc
----------------------------------------------------------------------
diff --git a/proxy/PluginVC.cc b/proxy/PluginVC.cc
index 66a4a7b..9b0727e 100644
--- a/proxy/PluginVC.cc
+++ b/proxy/PluginVC.cc
@@ -127,7 +127,8 @@ PluginVC::main_handler(int event, void *data)
     read_mutex_held = MUTEX_TAKE_TRY_LOCK(read_side_mutex, my_ethread);
 
     if (!read_mutex_held) {
-      call_event->schedule_in(PVC_LOCK_RETRY_TIME);
+      if (call_event != inactive_event)
+        call_event->schedule_in(PVC_LOCK_RETRY_TIME);
       return 0;
     }
 
@@ -135,7 +136,8 @@ PluginVC::main_handler(int event, void *data)
       // It's possible some swapped the mutex on us before
       //  we were able to grab it
       Mutex_unlock(read_side_mutex, my_ethread);
-      call_event->schedule_in(PVC_LOCK_RETRY_TIME);
+      if (call_event != inactive_event)
+        call_event->schedule_in(PVC_LOCK_RETRY_TIME);
       return 0;
     }
   }
@@ -147,7 +149,8 @@ PluginVC::main_handler(int event, void *data)
       if (read_mutex_held) {
         Mutex_unlock(read_side_mutex, my_ethread);
       }
-      call_event->schedule_in(PVC_LOCK_RETRY_TIME);
+      if (call_event != inactive_event)
+        call_event->schedule_in(PVC_LOCK_RETRY_TIME);
       return 0;
     }
 
@@ -158,7 +161,8 @@ PluginVC::main_handler(int event, void *data)
       if (read_mutex_held) {
         Mutex_unlock(read_side_mutex, my_ethread);
       }
-      call_event->schedule_in(PVC_LOCK_RETRY_TIME);
+      if (call_event != inactive_event)
+        call_event->schedule_in(PVC_LOCK_RETRY_TIME);
       return 0;
     }
   }

Reply via email to