Thanks for your input.
I have made this pointer global now, still the same result -
void interruptQuery( size_t miliSecs )
interruptCallback = new QSearchInterruptCallback();
Timer newTimer( miliSecs, 0 );
newTimer.start( *interruptCallback, Thread::PRIO_HIGH );
printf("Timer's start Interval is set to: %d\n", newTimer.getStartInterval());
Still the Timer doesn't get called. Tried with changing the pointer to the global object, with same results!
From the tests I have done it seems that the cloned object is getting destructed causing the call to fail. Here is the output.
Timer's start Interval is set to: 500
Destructing the QSearchInterruptCallback.
.. //some error messages and printfs
Destructing the QSearchInterruptCallback. ....//This shows up right before the program exits.