ReaderWriter.ReaderWriter C# (CSharp) Method

ReaderWriter() public method

public ReaderWriter ( ) : System
return System
    public ReaderWriter()
    {
        Join j = Join.Create();
        j.Initialize(out Idle);
        j.Initialize(out Sharing);
        j.Initialize(out Shared);
        j.Initialize(out ReleaseShared);
        j.Initialize(out Exclusive);
        j.Initialize(out ReleaseExclusive);

        j.When(Shared).And(Idle).Do(delegate{ Sharing(1);});
        j.When(Shared).And(Sharing).Do(delegate(int sharing){
          Sharing(sharing+1);});
        j.When(ReleaseShared).And(Sharing).Do(delegate(int sharing){
          if (sharing==1) Idle(); else Sharing(sharing-1);});
        j.When(Exclusive).And(Idle).Do(delegate{});
        j.When(ReleaseExclusive).Do(delegate{ Idle();});

        Idle();
    }
ReaderWriter