protected bool ResolveFrame(UInt32 frame, out TracebackFrame resolved, out Future <TracebackFrame> pendingResolve) { if (ResolvedSymbolCache.TryGetValue(frame, out resolved)) { pendingResolve = null; return(true); } if (!PendingSymbolResolves.TryGetValue(frame, out pendingResolve)) { var f = PendingSymbolResolves[frame] = new Future <TracebackFrame>(); var item = new PendingSymbolResolve(frame, f); SymbolResolveQueue.Enqueue(item); } return(false); }
protected bool ResolveFrame(UInt32 frame, out TracebackFrame resolved, out Future<TracebackFrame> pendingResolve) { if (ResolvedSymbolCache.TryGetValue(frame, out resolved)) { pendingResolve = null; return true; } if (!PendingSymbolResolves.TryGetValue(frame, out pendingResolve)) { var f = PendingSymbolResolves[frame] = new Future<TracebackFrame>(); var item = new PendingSymbolResolve(frame, f); SymbolResolveQueue.Enqueue(item); } return false; }