Esempio n. 1
0
        private HalCompletion CreateContinuation(IntPtr Continuation)
        {
            HalCompletion halCompletion = null;

            lock (_completionLookup)
            {
                halCompletion = new HalCompletion(this.Emulator, Continuation, this);
                _completionLookup[Continuation] = halCompletion;
            }

            return(halCompletion);
        }
Esempio n. 2
0
        void ITimeDriver.EnqueueCompletion(IntPtr Completion, uint uSecFromNow)
        {
            lock (_completionLookup)
            {
                if (!_completionLookup.ContainsKey(Completion))
                {
                    HalCompletion halCompletion = CreateContinuation(Completion);

                    this.TimingServices.EnqueueCompletion(halCompletion, uSecFromNow);
                }
            }
        }
Esempio n. 3
0
        private bool RemoveContinuation(IntPtr Continuation, out HalCompletion halCompletion)
        {
            bool fRemoved = false;

            lock (_completionLookup)
            {
                if (_completionLookup.TryGetValue(Continuation, out halCompletion))
                {
                    _completionLookup.Remove(Continuation);
                    fRemoved = true;
                }
            }

            return(fRemoved);
        }
Esempio n. 4
0
        void ITimeDriver.EnqueueContinuation(IntPtr Continuation)
        {
            lock (_completionLookup)
            {
                if (!_completionLookup.ContainsKey(Continuation))
                {
                    HalCompletion halCompletion = CreateContinuation(Continuation);

                    halCompletion.EnqueueContinuation();
                }
                else
                {
                    _completionLookup[Continuation].EnqueueContinuation();
                }
            }
        }
Esempio n. 5
0
        void ITimeDriver.EnqueueContinuation(IntPtr Continuation)
        {
            HalCompletion halCompletion = CreateContinuation(Continuation);

            halCompletion.EnqueueContinuation();
        }
Esempio n. 6
0
        void ITimeDriver.EnqueueCompletion(IntPtr Completion, uint uSecFromNow)
        {
            HalCompletion halCompletion = CreateContinuation(Completion);

            this.TimingServices.EnqueueCompletion(halCompletion, uSecFromNow);
        }