upm_guru_kcp/Runtime/csharp-kcp/dotNetty-kcp/thread/DistuptorMessageExecutor.cs

44 lines
987 B
C#
Raw Permalink Normal View History

2023-08-30 05:50:21 +00:00
using System.Threading.Tasks;
namespace dotNetty_kcp.thread
{
/**
*
* 500W tps
*
*/
public class DistuptorMessageExecutor:AbstratcMessageExecutor
{
private RingBuffer<ITask> _ringBuffer;
private const int MAX_QUEUE_SIZE = 2 << 10;
public override void start()
{
_ringBuffer = new RingBuffer<ITask>(MAX_QUEUE_SIZE);
base.start();
}
public override bool isFull()
{
return _ringBuffer.Count == MAX_QUEUE_SIZE;
}
protected override bool isEmpty()
{
return _ringBuffer.Count == 0;
}
protected override bool TryDequeue(out ITask task)
{
return _ringBuffer.TryDequeue(out task);
}
protected override bool TryEnqueue(ITask task)
{
return _ringBuffer.tryEnqueue(task);
}
}
}