From cbf91493779ded18903531d67f802ae2693cf494 Mon Sep 17 00:00:00 2001
From: g0dil <g0dil@wiback.org>
Date: Fri, 15 May 2009 13:22:01 +0000
Subject: [PATCH] PPI: Measure ActiveFeeder performance in unit test

---
 PPI/ActiveFeeder.test.cc | 11 +++++++----
 PPI/Events.cc            | 10 ++++++++++
 PPI/Events.cci           | 10 ----------
 3 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/PPI/ActiveFeeder.test.cc b/PPI/ActiveFeeder.test.cc
index f54e426b8..8d9aa55e8 100644
--- a/PPI/ActiveFeeder.test.cc
+++ b/PPI/ActiveFeeder.test.cc
@@ -50,14 +50,17 @@ BOOST_AUTO_UNIT_TEST(activeFeeder)
     ppi::connect(source,feeder);
     ppi::connect(feeder,sink);
 
-    source.submit(senf::DataPacket::create());
-    source.submit(senf::DataPacket::create());
-    source.submit(senf::DataPacket::create());
+    for (unsigned i (0); i < 500; ++i)
+        source.submit(senf::DataPacket::create());
 
+    senf::ClockService::clock_type start (senf::ClockService::now());
     ppi::run();
+    std::cerr << "ActiveFeeder: " 
+              << (500*1e9)/(senf::ClockService::now()-start)
+              << " packets/s" << std::endl;
 
     BOOST_CHECK_EQUAL( source.size(), 0u );
-    BOOST_CHECK_EQUAL( sink.size(), 3u );
+    BOOST_CHECK_EQUAL( sink.size(), 500u );
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////
diff --git a/PPI/Events.cc b/PPI/Events.cc
index 9f8ec8057..eb89a50c6 100644
--- a/PPI/Events.cc
+++ b/PPI/Events.cc
@@ -47,6 +47,16 @@ prefix_ void senf::ppi::EventDescriptor::notifyUnthrottle()
         enabled(true);
 }
 
+prefix_ void senf::ppi::EventDescriptor::enabled(bool v)
+{
+    SENF_ASSERT(v_isRegistered()); // Module::registerEvent() call missing !!
+    if (v && ! enabled_)
+        v_enable();
+    else if (! v && enabled_)
+        v_disable();
+    enabled_ = v;
+}
+
 ///////////////////////////////cc.e////////////////////////////////////////
 #undef prefix_
 //#include "Events.mpp"
diff --git a/PPI/Events.cci b/PPI/Events.cci
index 7d113b330..1e50eb733 100644
--- a/PPI/Events.cci
+++ b/PPI/Events.cci
@@ -40,16 +40,6 @@ prefix_ bool senf::ppi::EventDescriptor::enabled()
     return enabled_;
 }
 
-prefix_ void senf::ppi::EventDescriptor::enabled(bool v)
-{
-    SENF_ASSERT(v_isRegistered());
-    if (v && ! enabled_)
-        v_enable();
-    else if (! v && enabled_)
-        v_disable();
-    enabled_ = v;
-}
-
 ////////////////////////////////////////
 // protected members
 
-- 
GitLab