userlibandfileserver/fileserver/shostmassstorage/server/src/cusbhostmssession.cpp
equal
deleted
inserted
replaced
113 aMessage.Complete(r); |
113 aMessage.Complete(r); |
114 return; |
114 return; |
115 } |
115 } |
116 break; |
116 break; |
117 /* If it is a cleanup then we need to delete the iDeviceThread */ |
117 /* If it is a cleanup then we need to delete the iDeviceThread */ |
118 case EUsbHostMsFinalCleanup: |
118 case EUsbHostMsFinalCleanup: |
119 if(iDeviceThread->IsActive()) |
|
120 { |
|
121 iThread.RequestComplete(iClientStatus, KErrSessionClosed); |
|
122 } |
|
123 |
|
124 delete iDeviceThread; |
119 delete iDeviceThread; |
125 iThread.Kill(KErrNone); |
120 iThread.Kill(KErrNone); |
126 aMessage.Complete(KErrNone); |
121 aMessage.Complete(KErrNone); |
127 return; |
122 return; |
128 default: |
123 default: |
153 TPtr8 ptr((TUint8*)&msDeviceConfig,sizeof(THostMassStorageConfig)); |
148 TPtr8 ptr((TUint8*)&msDeviceConfig,sizeof(THostMassStorageConfig)); |
154 |
149 |
155 aMessage.ReadL(0, ptr); |
150 aMessage.ReadL(0, ptr); |
156 __HOSTPRINT1(_L("EUsbHostMsRegisterInterface Token=%d "), msDeviceConfig.iInterfaceToken); |
151 __HOSTPRINT1(_L("EUsbHostMsRegisterInterface Token=%d "), msDeviceConfig.iInterfaceToken); |
157 |
152 |
158 TBuf<20> nameBuf; |
153 TBuf<32> nameBuf; |
159 nameBuf.Format(_L("Host Ms Thread%d"), msDeviceConfig.iInterfaceToken); |
154 nameBuf.Format(_L("Host Ms Thread%8x"), msDeviceConfig.iInterfaceToken); |
160 iDeviceThread = CUsbHostMsDeviceThread::NewL(*this, msDeviceConfig.iInterfaceToken); |
155 iDeviceThread = CUsbHostMsDeviceThread::NewL(*this, msDeviceConfig.iInterfaceToken); |
161 |
156 |
162 RHeap* h = (RHeap*)&User::Allocator(); |
157 RHeap* h = (RHeap*)&User::Allocator(); |
163 TInt maxsize = h->MaxLength(); // loader heap max size = file server heap max size |
158 TInt maxsize = h->MaxLength(); // loader heap max size = file server heap max size |
164 const TUint KHeapMinSize = 2048; |
159 const TUint KHeapMinSize = 2048; |
175 iThread.Rendezvous(status); |
170 iThread.Rendezvous(status); |
176 iThread.Resume(); |
171 iThread.Resume(); |
177 User::WaitForRequest(status); |
172 User::WaitForRequest(status); |
178 if(status != KErrNone) |
173 if(status != KErrNone) |
179 { |
174 { |
180 if(iDeviceThread->IsActive()) |
|
181 { |
|
182 iThread.RequestComplete(iClientStatus, KErrSessionClosed); |
|
183 } |
|
184 iDeviceThread->Cancel(); |
|
185 delete iDeviceThread; |
175 delete iDeviceThread; |
186 iDeviceThread = NULL; |
176 iDeviceThread = NULL; |
187 iThread.Kill(KErrNone); |
177 iThread.Kill(KErrNone); |
188 User::Leave(status.Int()); |
178 User::Leave(status.Int()); |
189 } |
179 } |