×
Namespaces

Variants
Actions
Revision as of 08:14, 2 February 2012 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Active Object Pitfalls

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Article
Created: Den123 (26 Jun 2007)
Last edited: hamishwillee (02 Feb 2012)

A stray-event panic from the Active Scheduler ( E32USER-CBASE 46 error ) is a most common problem with an Active Objects. This is ussually caused by one ( or more ) of the following:

  • You forgot to call CActiveScheduler::Add() before starting the Active Object.
  • You dont call SetActive() after issuing an async request.
  • Passing the same iStatus to two service providers at the same time ( multiple requests outstanding on the same Active Object ).

Do not invoke DoCancel() directly - it should be private - always call Cancel(). Note that Cancel() should be always be called in the destructor of your derived class.

Other related pitfalls (triggering other panics):

  • Using your own TRequestStatus variable, instead of using the one provided by CActive.
  • Passing automatic variables when doing an asynchronous request.


Careless use of active objects can degrade the response time of UI in case of:

  • Priority of active object is higher than it is necessary
  • Method RunL() works too long
This page was last modified on 2 February 2012, at 08:14.
56 page views in the last 30 days.