예제 #1
0
파일: Tracker.cs 프로젝트: segmond/swicli
        public TrackedFrame PopFrame()
        {
            if (CurrentTrackedFrame == null)
            {
                return(null);
            }
            TrackedFrame old = CurrentTrackedFrame;

            CurrentTrackedFrame = old.Prev;
            old.RemoveRefs();
            return(old);
        }
예제 #2
0
파일: Tracker.cs 프로젝트: segmond/swicli
        static public bool cliTrackerFree(PlTerm trackerIn)
        {
            ThisThreadTracked--;
            TrackedFrame tc0 = (TrackedFrame)GetInstance(trackerIn);

            if (tc0 != null)
            {
                LocallyTrackedObjects.RemoveFrame(tc0);
                return(true);
            }
            return(false);
        }
예제 #3
0
파일: Tracker.cs 프로젝트: segmond/swicli
        public TrackedFrame CreateFrame()
        {
            if (CurrentTrackedFrame == null)
            {
                CurrentTrackedFrame = new TrackedFrame();
                return(CurrentTrackedFrame);
            }
            TrackedFrame newTrackedFrame = new TrackedFrame {
                Prev = CurrentTrackedFrame
            };

            CurrentTrackedFrame = newTrackedFrame;
            return(newTrackedFrame);
        }
예제 #4
0
파일: Tracker.cs 프로젝트: segmond/swicli
 public bool RemoveFrame(TrackedFrame frame)
 {
     if (CurrentTrackedFrame == frame)
     {
         PopFrame();
         return(true);
     }
     else
     {
         if (PrologCLR.DebugRefs)
         {
             PrologCLR.Debug("Removing wierd frame{0}", frame);
         }
         frame.RemoveRefs();
         return(false);
     }
 }
예제 #5
0
파일: Tracker.cs 프로젝트: segmond/swicli
 public ThreadEngineObjectTracker()
 {
     CurrentTrackedFrame = new TrackedFrame();
 }