I have an application on the Nokia 9500 which performs a long process in a number of steps. A CIdle object determines when to execute the next step. One of these steps sends and retrieves data from a webservice. But.. in about 50% of the runs, the application panics with a ViewSrv 11 after making the connection.
I use the RHttpSession and RHttpTransaction classes to make the connection and to retrieve the data. The CIdle object runs with priority 'low' (I also tried 'idle', which had the same result). Right before returning ETrue to the CIdle object, I wait a while with User::After(5000), thinking this might solve the problem, but it didn't.
What I see in the log files, is that:
- the connection is being made and the transaction started
- the CIdle callback function returns with a value of ETrue, telling the CIdle object that there is more work to be done
..and that's it. In about half of the cases, the CIdle object never gets activated again.
What I see on the screen is:
- I am asked how I want to connect to the Internet; I select a GSM connection
- my application starts blinking an info message to indicate it is busy
- behind the info message, I still see the connection dialog; the screen does not get refreshed when the call is being made
- the screen either gets refreshed, or the View server thinks it all takes too much time and bails out with a panic 11
It looks like *something* is eating up all the processor time after my application gives control back to the operating system.
The same application (with a different UI layer) works flawlessly on a Sony/Ericsson P900...
Is this a bug in the 9500 OS? Or am I missing something? Any help is appreciated.
-- arno