mmserv/tms/tmsserver/src/tmsserver.cpp
changeset 20 b67dd1fc57c5
parent 19 4a629bc82c5e
child 28 ebf79c79991a
--- a/mmserv/tms/tmsserver/src/tmsserver.cpp	Fri Apr 30 19:18:45 2010 -0500
+++ b/mmserv/tms/tmsserver/src/tmsserver.cpp	Fri May 14 18:19:45 2010 -0500
@@ -45,12 +45,11 @@
 //
 // -----------------------------------------------------------------------------
 //
-TMSServer* TMSServer::NewL()
+TMSServer* TMSServer::NewLC()
     {
     TMSServer* self = new (ELeave) TMSServer;
     CleanupStack::PushL(self);
     self->ConstructL();
-    CleanupStack::Pop(self);
     return self;
     }
 
@@ -1292,21 +1291,24 @@
     }
 
 // -----------------------------------------------------------------------------
-// RunServerL
+// TMSServer::RunServerL
 //
 // -----------------------------------------------------------------------------
 //
-static void RunServerL()
+void TMSServer::RunServerL()
     {
     TRACE_PRN_N(_L("TMS->RunServerL"));
 
+    // Naming the server thread after the server helps to debug panics
+    User::LeaveIfError(User::RenameThread(KTMSServerName));
+
     // Create and install the active scheduler we need
     CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
     CleanupStack::PushL(scheduler);
     CActiveScheduler::Install(scheduler);
 
     // Create the server (leave it on the cleanup stack)
-    TMSServer* server = TMSServer::NewL();
+    TMSServer* server = TMSServer::NewLC();
 
     // Initialisation complete, now signal the client
     RProcess::Rendezvous(TMS_RESULT_SUCCESS);
@@ -1316,7 +1318,7 @@
 
     // Ready to exit.
     // Cleanup scheduler and delete the server
-    delete server;
+    CleanupStack::PopAndDestroy(server);
     CleanupStack::PopAndDestroy(scheduler);
 
     TRACE_PRN_N(_L("TMS->RunServerL - TMS server closed"));
@@ -1565,7 +1567,7 @@
     TInt r = KErrNoMemory;
     if (cleanup)
         {
-        TRAP(r, RunServerL());
+        TRAP(r, TMSServer::RunServerL());
         delete cleanup;
         }
     __UHEAP_MARKEND;