diff -r 77effd21b2c9 -r 98a7181d2ce7 datacommsserver/esockserver/ssock/ss_roles.cpp --- a/datacommsserver/esockserver/ssock/ss_roles.cpp Sat Feb 20 00:01:55 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_roles.cpp Fri Mar 12 15:49:41 2010 +0200 @@ -1776,7 +1776,15 @@ if(err == KErrNone) { - err = aRedShirt.Create(KNullDesC, RESockCleanupThreadFunction, 8192, static_cast(heap), startupInfo); + // Attempt to create the RedShirt with a useful diagnostic name, to reduce the + // likelihood that time is wasted debugging a problem in it rather than in the original + // crashed worker + TBuf threadName; + _LIT(KNameFmt, "IgnoreMe_PostCrashCleanupHelper_%x"); + TWorkerThreadRegister* deadInfo = aDeadWorker.WorkerProperties(aDeadWorker.WorkerId()); + TUint deadThreadId = deadInfo? (TUint) deadInfo->iThreadId: User::TickCount(); + threadName.Format(KNameFmt, deadThreadId); + err = aRedShirt.Create(threadName, RESockCleanupThreadFunction, 8192, static_cast(heap), startupInfo); } // If any error occured, delete the startup info structure. if(err != KErrNone)