userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp
branchRCL_3
changeset 41 0ffb4e86fcc9
parent 6 0173bcd7697c
equal deleted inserted replaced
39:2bb754abd467 41:0ffb4e86fcc9
   112 			{
   112 			{
   113 			aMessage.Complete(r);
   113 			aMessage.Complete(r);
   114 			return;
   114 			return;
   115 			}
   115 			}
   116 		break;
   116 		break;
       
   117 	case EUsbHostMsUnRegisterInterface:
       
   118 		iCleanupInProgress = ETrue;
       
   119 		break;
   117 	/* If it is a cleanup then we need to delete the iDeviceThread */
   120 	/* If it is a cleanup then we need to delete the iDeviceThread */
   118 	case EUsbHostMsFinalCleanup:	
   121 	case EUsbHostMsFinalCleanup:	
   119 		delete iDeviceThread;
   122 		delete iDeviceThread;
       
   123 		iDeviceThread = NULL;
   120 		iThread.Kill(KErrNone);
   124 		iThread.Kill(KErrNone);
   121 		aMessage.Complete(KErrNone);
   125 		aMessage.Complete(KErrNone);
   122 		return;
   126 		return;
   123 	default:
   127 	default:
   124 		break;
   128 		break;
   125 		}
   129 		}
   126 
   130 
   127 	__ASSERT_DEBUG(iDeviceThread != NULL, User::Panic(KUsbMsHostPanicCat, EDeviceThreadDoesNotExist));
   131 	if (iDeviceThread == NULL || iCleanupInProgress ) 
       
   132 		{
       
   133 		aMessage.Complete(KErrBadHandle);
       
   134 		return;
       
   135 		}
       
   136 
   128 
   137 
   129 	r = iDeviceThread->QueueMsg(aMessage);
   138 	r = iDeviceThread->QueueMsg(aMessage);
   130 	if (r != KErrNone)
   139 	if (r != KErrNone)
   131 		{
   140 		{
   132 		aMessage.Complete(r);
   141 		aMessage.Complete(r);