imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp
branchRCL_3
changeset 11 dea39715fc05
parent 5 82749d516180
child 21 ad31f4183ddc
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp	Mon Mar 15 12:41:55 2010 +0200
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp	Wed Mar 31 22:04:49 2010 +0300
@@ -85,7 +85,7 @@
 void CThumbnailTask::StartL()
     {
     TN_DEBUG3( "CThumbnailTask(0x%08x)::StartL() iState == %d ", this, iState );
-    __ASSERT_DEBUG(( iState != ERunning ), ThumbnailPanic( EAlreadyRunning ));
+    __ASSERT_DEBUG(( iState != ERunning ), ThumbnailPanic( EThumbnailAlreadyRunning ));
     iState = ERunning;
     }
 
@@ -174,10 +174,20 @@
 // ---------------------------------------------------------------------------
 //
 void CThumbnailTask::SetMessageData( const TThumbnailServerRequestId&
-    aRequestId, const RMessage2& aMessage )
+    aRequestId, const RMessage2& aMessage, const RThread& aClientThread )
     {
     iMessage = aMessage;
     iRequestId = aRequestId;
+    
+    if ( iMessage.Handle())
+        {
+        // copy client thread handle
+        iClientThread.Duplicate(aClientThread);
+        }
+    else
+        {
+        TN_DEBUG2( "CThumbnailTask(0x%08x)::ClientThreadAlive() - message null", this);
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -222,7 +232,11 @@
     {
     if ( iMessage.Handle())
         {
-        iMessage.Complete( KErrCancel );
+        if ( ClientThreadAlive() )
+            {
+            iMessage.Complete( KErrCancel );
+            }
+        
         ResetMessageData();
         }
     }
@@ -234,6 +248,8 @@
 //
 TBool CThumbnailTask::ClientThreadAlive(const TBool aGetThread)
     {
+    TN_DEBUG1( "CThumbnailTask::ClientThreadAlive()");
+    
     if ( iMessage.Handle())
         {
         if (aGetThread)