equal
deleted
inserted
replaced
22 #include "goomtraces.h" |
22 #include "goomtraces.h" |
23 #include "goomappclosetimer.h" |
23 #include "goomappclosetimer.h" |
24 #include "goomappclosewatcher.h" |
24 #include "goomappclosewatcher.h" |
25 #include "goomactionref.h" |
25 #include "goomactionref.h" |
26 |
26 |
27 const TInt KGOomMaxAppExitTime = 1000000; |
|
28 const TInt KGOomMaxAppAfterKillWaitTime = 1000000; |
|
29 |
27 |
30 CGOomCloseApp* CGOomCloseApp::NewL(MGOomActionObserver& aStateChangeObserver, RWsSession& aWs) |
28 CGOomCloseApp* CGOomCloseApp::NewL(MGOomActionObserver& aStateChangeObserver, RWsSession& aWs) |
31 { |
29 { |
32 FUNC_LOG; |
30 FUNC_LOG; |
33 |
31 |
49 // Set the TApaTask to the app |
47 // Set the TApaTask to the app |
50 iCurrentTask.SetWgId(iWgId); |
48 iCurrentTask.SetWgId(iWgId); |
51 |
49 |
52 // Start a timer and the thread watcher |
50 // Start a timer and the thread watcher |
53 iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppClosing); |
51 iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppClosing); |
54 iAppCloseTimer->After(KGOomMaxAppExitTime); |
52 iAppCloseTimer->After(iCloseTimeout * 1000); |
55 iAppCloseWatcher->Start(iCurrentTask); |
53 iAppCloseWatcher->Start(iCurrentTask); |
56 // Tell the app to close |
54 // Tell the app to close |
57 TRACES1("CGOomCloseApp::FreeMemory: Closing app with window group id %d",iWgId); |
55 TRACES2("CGOomCloseApp::FreeMemory: Closing app with window group id %d Timeout = %d",iWgId, iCloseTimeout); |
58 iCurrentTask.EndTask(); |
56 iCurrentTask.EndTask(); |
59 } |
57 } |
60 |
58 |
61 CGOomCloseApp::~CGOomCloseApp() |
59 CGOomCloseApp::~CGOomCloseApp() |
62 { |
60 { |
79 |
77 |
80 // The application has closed (or we have a timeout) |
78 // The application has closed (or we have a timeout) |
81 iAppCloserRunning = EFalse; |
79 iAppCloserRunning = EFalse; |
82 |
80 |
83 if (iAppCloseTimer) |
81 if (iAppCloseTimer) |
84 iAppCloseTimer->Cancel(); |
82 { |
|
83 iAppCloseTimer->Cancel(); |
|
84 iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled); |
|
85 iAppCloseTimer->After(iWaitAfterClose * 1000); |
|
86 } |
|
87 |
85 if (iAppCloseWatcher) |
88 if (iAppCloseWatcher) |
86 iAppCloseWatcher->Cancel(); |
89 iAppCloseWatcher->Cancel(); |
87 |
90 |
88 iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled); |
91 |
89 iAppCloseTimer->After(KGOomMaxAppAfterKillWaitTime); |
|
90 //MemoryFreed(KErrNone); |
92 //MemoryFreed(KErrNone); |
91 } |
93 } |
92 |
94 |
93 void CGOomCloseApp::Reconfigure(const TActionRef& aRef) |
95 void CGOomCloseApp::Reconfigure(const TActionRef& aRef) |
94 { |
96 { |
95 FUNC_LOG; |
97 FUNC_LOG; |
96 |
98 |
97 iWgId = aRef.WgId(); |
99 iWgId = aRef.WgId(); |
|
100 iCloseTimeout = aRef.CloseTimeout(); |
|
101 iWaitAfterClose = aRef.WaitAfterClose(); |
98 } |
102 } |
99 |
103 |
100 void CGOomCloseApp::ConstructL() |
104 void CGOomCloseApp::ConstructL() |
101 { |
105 { |
102 FUNC_LOG; |
106 FUNC_LOG; |
126 |
130 |
127 iCurrentTask.KillTask(); |
131 iCurrentTask.KillTask(); |
128 iAppCloserRunning = EFalse; |
132 iAppCloserRunning = EFalse; |
129 |
133 |
130 iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled); |
134 iAppCloseTimer->SetState(CGOomAppCloseTimer::EGOomAppKilled); |
131 iAppCloseTimer->After(KGOomMaxAppAfterKillWaitTime); |
135 iAppCloseTimer->After(iWaitAfterClose * 1000); |
132 //MemoryFreed(KErrNone); |
136 //MemoryFreed(KErrNone); |
133 } |
137 } |
134 |
138 |
135 void CGOomCloseApp::KillTaskWaitDone() |
139 void CGOomCloseApp::KillTaskWaitDone() |
136 { |
140 { |