changeset 280cc9b0794f in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=280cc9b0794f
description:
        sim: Fix resource leak in BaseGlobalEvent

        Static analysis revealed that BaseGlobalEvent::barrier was never
        deallocated. This changeset solves this leak by making the barrier
        allocation a part of the BaseGlobalEvent instead of storing a pointer
        to a separate heap-allocated barrier.

diffstat:

 src/sim/global_event.cc |  4 ++--
 src/sim/global_event.hh |  4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diffs (36 lines):

diff -r 919c02740209 -r 280cc9b0794f src/sim/global_event.cc
--- a/src/sim/global_event.cc   Tue Sep 09 04:36:31 2014 -0400
+++ b/src/sim/global_event.cc   Tue Sep 09 04:36:32 2014 -0400
@@ -34,9 +34,9 @@
 std::mutex BaseGlobalEvent::globalQMutex;
 
 BaseGlobalEvent::BaseGlobalEvent(Priority p, Flags f)
+    : barrier(numMainEventQueues),
+      barrierEvent(numMainEventQueues, NULL)
 {
-    barrierEvent.resize(numMainEventQueues);
-    barrier = new Barrier(numMainEventQueues);
 }
 
 
diff -r 919c02740209 -r 280cc9b0794f src/sim/global_event.hh
--- a/src/sim/global_event.hh   Tue Sep 09 04:36:31 2014 -0400
+++ b/src/sim/global_event.hh   Tue Sep 09 04:36:32 2014 -0400
@@ -100,7 +100,7 @@
             // while waiting on the barrier to prevent deadlocks if
             // another thread wants to lock the event queue.
             EventQueue::ScopedRelease release(curEventQueue());
-            return _globalEvent->barrier->wait();
+            return _globalEvent->barrier.wait();
         }
 
       public:
@@ -109,7 +109,7 @@
 
     //! The barrier that all threads wait on before performing the
     //! global event.
-    Barrier *barrier;
+    Barrier barrier;
 
     //! The individual local event instances (one per thread/event queue).
     std::vector<BarrierEvent *> barrierEvent;
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to