This commit is contained in:
watrabi
2025-09-18 17:55:52 -04:00
commit 977f1ff4b8
15030 changed files with 17324420 additions and 0 deletions
@@ -0,0 +1,34 @@
using System;
using Microsoft.Ccr.Core;
namespace Roblox
{
public class Interleaver
{
readonly Port<Action> exclusive = new Port<Action>();
readonly Port<Action> concurrent = new Port<Action>();
public void DoExclusive(Action action)
{
exclusive.Post(action);
}
public void DoConcurrent(Action action)
{
concurrent.Post(action);
}
public Interleaver()
{
CcrService.Singleton.Activate(Arbiter.Interleave(
new TeardownReceiverGroup(),
new ExclusiveReceiverGroup(
Arbiter.Receive(true, exclusive, action => action())
),
new ConcurrentReceiverGroup(
Arbiter.Receive(true, concurrent, action => action())
)
));
}
}
}