41 CActiveScheduler::Install(scheduler); |
41 CActiveScheduler::Install(scheduler); |
42 |
42 |
43 // Launch the start-up manager that will launch the watchers in the |
43 // Launch the start-up manager that will launch the watchers in the |
44 // correct start-up state |
44 // correct start-up state |
45 CWatcherSSAStartupMgr* startupMgr = CWatcherSSAStartupMgr::NewL(); |
45 CWatcherSSAStartupMgr* startupMgr = CWatcherSSAStartupMgr::NewL(); |
|
46 CleanupStack::PushL(startupMgr); |
46 |
47 |
47 // The System Starter is waiting for us (start_method = EWaitForStart) |
48 // The System Starter is waiting for us (start_method = EWaitForStart) |
48 // so we rendez-vous so it can start the next process in the SSC |
49 // so we rendez-vous so it can start the next process in the SSC |
49 RProcess::Rendezvous(KErrNone); |
50 RProcess::Rendezvous(KErrNone); |
50 |
51 |
51 // We start the scheduler even if there are no watchers (vs previous |
52 // We start the scheduler even if there are no watchers (vs previous |
52 // behaviour) as the SSA manager is also an active object |
53 // behaviour) as the SSA manager is also an active object |
53 CActiveScheduler::Start(); |
54 CActiveScheduler::Start(); |
54 |
55 |
55 // Tidy up |
56 // Tidy up |
56 CleanupStack::PopAndDestroy(scheduler); |
57 CleanupStack::PopAndDestroy(2, scheduler); |
57 } |
58 } |
58 |
59 |
59 static TInt DoLaunchThread(TAny*) |
60 static TInt DoLaunchThread(TAny*) |
60 { |
61 { |
61 CTrapCleanup* cleanup = CTrapCleanup::New(); |
62 CTrapCleanup* cleanup = CTrapCleanup::New(); |