equal
deleted
inserted
replaced
1774 } |
1774 } |
1775 #endif |
1775 #endif |
1776 |
1776 |
1777 if(err == KErrNone) |
1777 if(err == KErrNone) |
1778 { |
1778 { |
1779 err = aRedShirt.Create(KNullDesC, RESockCleanupThreadFunction, 8192, static_cast<RHeap*>(heap), startupInfo); |
1779 // Attempt to create the RedShirt with a useful diagnostic name, to reduce the |
|
1780 // likelihood that time is wasted debugging a problem in it rather than in the original |
|
1781 // crashed worker |
|
1782 TBuf<KMaxKernelName> threadName; |
|
1783 _LIT(KNameFmt, "IgnoreMe_PostCrashCleanupHelper_%x"); |
|
1784 TWorkerThreadRegister* deadInfo = aDeadWorker.WorkerProperties(aDeadWorker.WorkerId()); |
|
1785 TUint deadThreadId = deadInfo? (TUint) deadInfo->iThreadId: User::TickCount(); |
|
1786 threadName.Format(KNameFmt, deadThreadId); |
|
1787 err = aRedShirt.Create(threadName, RESockCleanupThreadFunction, 8192, static_cast<RHeap*>(heap), startupInfo); |
1780 } |
1788 } |
1781 // If any error occured, delete the startup info structure. |
1789 // If any error occured, delete the startup info structure. |
1782 if(err != KErrNone) |
1790 if(err != KErrNone) |
1783 { |
1791 { |
1784 prevHeap = User::SwitchHeap(heap); |
1792 prevHeap = User::SwitchHeap(heap); |