Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#1004 closed defect (fixed)

Fixes for Symbian timer heap implementation to prevent stray timer callback execution

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-1.5.5
Component: pjlib Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

The original timer heap design is based on passive object principle, where the timer heap requires polling to make it run. This is not the case with Symbian implementation, where it is implemented with Active Objects thus requires no polling.

The timer heap doesn't keep record on currently active timer entries that have been scheduled by application. As the result, it is possible that an Active Object is still running even after the timer heap is destroyed, causing stray callback to be called. This most likely will crash the application.

This ticket implements record keeping in the timer heap, to enable it to cancel the currently running Active Objects when the timer heap is destroyed.

Change History (3)

comment:1 Changed 9 years ago by bennylp

  • Resolution set to fixed
  • Status changed from new to closed

In r3034:

  • Symbian timer heap now records active timers and cancel them when pj_timer_heap_destroy() is called.

comment:2 Changed 9 years ago by ismangil

  • Milestone changed from release-1.6 to release-1.5.5

comment:3 Changed 9 years ago by bennylp

Follow up fix in #1035

Note: See TracTickets for help on using tickets.