summaryrefslogtreecommitdiff
path: root/PluginRoutingInterfaceAsync
diff options
context:
space:
mode:
authorchristian mueller <christian.ei.mueller@bmw.de>2012-04-11 17:27:46 +0200
committerchristian mueller <christian.ei.mueller@bmw.de>2012-05-24 13:40:22 +0200
commit15f093000c7cb185dbcae3db7ee5827530d46fac (patch)
treede76b76d59853f5a394c8a4ffd176828e7f7a149 /PluginRoutingInterfaceAsync
parentfade50454093e07b0f5739ff4935702d255d0296 (diff)
downloadaudiomanager-15f093000c7cb185dbcae3db7ee5827530d46fac.tar.gz
* [GAM-60] wrong calculation of time in asyncRoutingPlugin
Signed-off-by: christian mueller <christian.ei.mueller@bmw.de>
Diffstat (limited to 'PluginRoutingInterfaceAsync')
-rw-r--r--PluginRoutingInterfaceAsync/src/CAmRoutingSenderAsync.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/PluginRoutingInterfaceAsync/src/CAmRoutingSenderAsync.cpp b/PluginRoutingInterfaceAsync/src/CAmRoutingSenderAsync.cpp
index f263f7d..43de210 100644
--- a/PluginRoutingInterfaceAsync/src/CAmRoutingSenderAsync.cpp
+++ b/PluginRoutingInterfaceAsync/src/CAmRoutingSenderAsync.cpp
@@ -27,6 +27,8 @@
#include <dbus/dbus.h>
#include "shared/CAmDltWrapper.h"
+#define MAX_NS 1000000000L
+
using namespace am;
DLT_DECLARE_CONTEXT(PluginRoutingAsync)
@@ -137,11 +139,8 @@ CAmWorkerThreadPool::~CAmWorkerThreadPool()
}
CAmWorker::CAmWorker(CAmWorkerThreadPool *pool):
-pPool(pool), mCancelSem()
-{
-}
-
-void CAmWorker::setCancelSempaphore(sem_t* cancel)
+pPool(pool), mCancelSem ( ) { }
+void CAmWorker ::setCancelSempaphore ( sem_t * cancel )
{
mCancelSem=cancel;
}
@@ -149,17 +148,23 @@ void CAmWorker::setCancelSempaphore(sem_t* cancel)
bool CAmWorker::timedWait(timespec timer)
{
timespec temp;
- if(clock_gettime(0, &temp)==-1)
+ if (clock_gettime(0, &temp) == -1)
{
logError("Worker::timedWait error on getting time");
}
- temp.tv_nsec+=timer.tv_nsec;
- temp.tv_sec+=timer.tv_sec;
+ temp.tv_nsec += timer.tv_nsec;
+ temp.tv_sec += timer.tv_sec;
+
+ if (temp.tv_nsec >= MAX_NS)
+ {
+ temp.tv_sec++;
+ temp.tv_nsec = temp.tv_nsec - MAX_NS;
+ }
//if(sem_wait(mCancelSem)==-1)
- if (sem_timedwait(mCancelSem,&temp)==-1)
- {
- //a timeout happened
- if(errno == ETIMEDOUT)
+ if (sem_timedwait(mCancelSem, &temp) == -1)
+ {
+ //a timeout happened
+ if (errno == ETIMEDOUT)
{
logInfo("Worker::timedWait timed out - no bug !");
return (false);
@@ -175,8 +180,8 @@ bool CAmWorker::timedWait(timespec timer)
return (true);
}
-CAmRoutingSenderAsync::CAmRoutingSenderAsync():
-mReceiveInterface(0), mDomains(createDomainTable()), mSinks(createSinkTable()), mSources ( createSourceTable ( ) ), mGateways ( createGatewayTable ( ) ), mMapHandleWorker ( ) , mMapConnectionIDRoute ( ) , mPool (10)
+CAmRoutingSenderAsync::CAmRoutingSenderAsync() :
+ mReceiveInterface(0), mDomains(createDomainTable()), mSinks(createSinkTable()), mSources(createSourceTable()), mGateways(createGatewayTable()), mMapHandleWorker(), mMapConnectionIDRoute(), mPool(10)
{
}