--- a/kerneltest/e32test/debug/d_perflogger_ldd.cpp Mon Dec 21 16:14:42 2009 +0000
+++ b/kerneltest/e32test/debug/d_perflogger_ldd.cpp Wed Dec 23 11:43:31 2009 +0000
@@ -23,6 +23,9 @@
#include "d_perflogger_ldd.h"
#include <kernperflogger.h>
+_LIT(KDFCThreadName,"D_PL_DFC_THREAD");
+const TInt KDFCThreadPriority=27;
+
//-----------------------------------------------------------------------------------
@@ -268,7 +271,19 @@
//-- initialize DFC machinery
- iDfcQ = Kern::DfcQue0(); //-- attach to the low priority DFC queue
+ //iDfcQ = Kern::DfcQue0(); //-- attach to the low priority DFC queue
+ if (!iDfcQ)
+ {
+ TInt r = Kern::DynamicDfcQCreate(iDfcQ, KDFCThreadPriority, KDFCThreadName);
+ if (r!= KErrNone)
+ {
+ return;
+ }
+
+#ifdef CPU_AFFINITY_ANY
+ NKern::ThreadSetCpuAffinity((NThread*)(iDfcQ->iThread), KCpuAffinityAny);
+#endif
+ }
iIsrLogTicker.Construct (iClientThread, iDfcQ, NKern::EInterrupt);//-- construct ISR log ticker
iDfcLogTicker.Construct (iClientThread, iDfcQ, NKern::EThread); //-- construct DFC log ticker
@@ -282,7 +297,10 @@
__PRINT("#KPLogTest:~DKPLoggerTestHelperLDD()");
iClientThread->Close(NULL);
-
+
+ if (iDfcQ)
+ iDfcQ->Destroy();
+
pSelf = NULL; //-- clear the pointer to this class instance
}