This commit is contained in:
Neil Dorin 2021-04-08 21:25:00 +00:00 committed by GitHub
commit ddb5988052
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -14,7 +14,7 @@ namespace PepperDash.Essentials.Core.Queues
protected readonly CrestronQueue<IQueueMessage> _queue; protected readonly CrestronQueue<IQueueMessage> _queue;
protected readonly Thread _worker; protected readonly Thread _worker;
protected readonly CEvent _waitHandle = new CEvent(); protected readonly CEvent _waitHandle = new CEvent();
private bool _delayEnabled; private bool _delayEnabled;
private int _delayTime; private int _delayTime;
@ -155,10 +155,10 @@ namespace PepperDash.Essentials.Core.Queues
if (programEvent != eProgramStatusEventType.Stopping) if (programEvent != eProgramStatusEventType.Stopping)
return; return;
Dispose(); Dispose(true);
}; };
} }
/// <summary> /// <summary>
/// Thread callback /// Thread callback
/// </summary> /// </summary>
@ -231,8 +231,13 @@ namespace PepperDash.Essentials.Core.Queues
if (disposing) if (disposing)
{ {
Enqueue(null); Debug.Console(2, this, "Disposing...");
_worker.Join(); if (_queue != null && !_queue.Disposed)
{
_queue.Clear();
Enqueue(null);
}
_worker.Abort();
_waitHandle.Close(); _waitHandle.Close();
} }
@ -241,7 +246,7 @@ namespace PepperDash.Essentials.Core.Queues
~GenericQueue() ~GenericQueue()
{ {
Dispose(false); Dispose(true);
} }
/// <summary> /// <summary>
@ -407,7 +412,7 @@ namespace PepperDash_Essentials_Core.Queues
if (programEvent != eProgramStatusEventType.Stopping) if (programEvent != eProgramStatusEventType.Stopping)
return; return;
Dispose(); Dispose(true);
}; };
} }
@ -477,8 +482,13 @@ namespace PepperDash_Essentials_Core.Queues
if (disposing) if (disposing)
{ {
Enqueue(null); Debug.Console(2, this, "Disposing...");
_worker.Join(); if (_queue != null && !_queue.Disposed)
{
_queue.Clear();
Enqueue(null);
}
_worker.Abort();
_waitHandle.Close(); _waitHandle.Close();
} }
@ -487,7 +497,7 @@ namespace PepperDash_Essentials_Core.Queues
~GenericQueue() ~GenericQueue()
{ {
Dispose(false); Dispose(true);
} }
/// <summary> /// <summary>