Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 16:12
    Aaronontheweb commented #3993
  • 15:51
    dependabot-preview[bot] synchronize #3991
  • 15:51

    dependabot-preview[bot] on nuget

    Bump Microsoft.Extensions.Depen… (compare)

  • 15:51
    dependabot-preview[bot] synchronize #3989
  • 15:51

    dependabot-preview[bot] on nuget

    Bump ApiApprover from 3.0.1 to … (compare)

  • 15:51
    dependabot-preview[bot] edited #3991
  • 15:51
    dependabot-preview[bot] edited #3989
  • 15:51
    dependabot-preview[bot] synchronize #3985
  • 15:51

    dependabot-preview[bot] on nuget

    Bump FsCheck.Xunit from 2.9.0 t… (compare)

  • 15:51
    dependabot-preview[bot] edited #3985
  • 15:51
    dependabot-preview[bot] synchronize #3982
  • 15:51

    dependabot-preview[bot] on nuget

    Bump FsPickler from 5.2.0 to 5.… (compare)

  • 15:51
    dependabot-preview[bot] synchronize #3986
  • 15:51
    dependabot-preview[bot] synchronize #3983
  • 15:51

    dependabot-preview[bot] on nuget

    Bump NUnit from 3.6.1 to 3.12.0… (compare)

  • 15:51
    dependabot-preview[bot] synchronize #3993
  • 15:51

    dependabot-preview[bot] on nuget

    Bump ApprovalUtilities from 3.0… (compare)

  • 15:51
    dependabot-preview[bot] synchronize #3992
  • 15:51

    dependabot-preview[bot] on nuget

    Bump Google.Protobuf from 3.9.1… (compare)

  • 15:51

    dependabot-preview[bot] on nuget

    Bump System.Reflection.Emit fro… (compare)

Ronnie Overby
@ronnieoverby
ok
Aaron Stannard
@Aaronontheweb
we call this a "tracer round"
lol
Ronnie Overby
@ronnieoverby
i like it
nothing happened
    protected override int PriorityGenerator(object message)
    {
        throw new ApplicationException("BLARGH!");

        if (message is Unsubscribe || message is Subscribe)
            return 0;

        return 1;
    }
Aaron Stannard
@Aaronontheweb
alrighty then
and the actor still received its message?
Ronnie Overby
@ronnieoverby
yes
Aaron Stannard
@Aaronontheweb
you know... I wonder....
this would be extremely weird
public abstract class UnboundedPriorityMailbox : MailboxType, IProducesMessageQueue<UnboundedPriorityMessageQueue>
    {
        protected abstract int PriorityGenerator(object message);

        public int InitialCapacity { get; }

        public const int DefaultCapacity = 11;

        public sealed override IMessageQueue Create(IActorRef owner, ActorSystem system)
        {
            return new UnboundedPriorityMessageQueue(PriorityGenerator, InitialCapacity);
        }

        protected UnboundedPriorityMailbox(Settings settings, Config config) : base(settings, config)
        {
            InitialCapacity = DefaultCapacity;
        }
    }
this is the unbounded priority mailbox in its full glory
Ronnie Overby
@ronnieoverby
pretty simple
Aaron Stannard
@Aaronontheweb
it's just a type provider
it takes your priority function and passes it into that queue
I wonder, if by some race condition
during the construction of this object
if it's possible
public class UnboundedPriorityMessageQueue : BlockingMessageQueue
    {
        private readonly ListPriorityQueue _prioQueue;

        public UnboundedPriorityMessageQueue(int initialCapacity)
        {
            _prioQueue = new ListPriorityQueue(initialCapacity);
        }

        public UnboundedPriorityMessageQueue(Func<object, int> priorityGenerator, int initialCapacity) : this(initialCapacity)
        {
            _prioQueue.SetPriorityCalculator(priorityGenerator);
        }

        internal void SetPriorityGenerator(Func<object, int> priorityGenerator)
        {
            _prioQueue.SetPriorityCalculator(priorityGenerator);
        }
that this queue never ends up getting to call the SetPriorityCalculator
would you mind reporting a bug for this?
I have an idea on how to test it
Ronnie Overby
@ronnieoverby
sure thing... just the bug? you need any code/tests or anything?
Aaron Stannard
@Aaronontheweb
just the bug and a test
Ronnie Overby
@ronnieoverby
ok
Aaron Stannard
@Aaronontheweb
thanks @ronnieoverby
Ronnie Overby
@ronnieoverby
thanks for the help
Aaron Stannard
@Aaronontheweb
np, it would be super weird if this were the case
since these are all synchronous functions
looks like this is a good candidate for a model-based test
Ronnie Overby
@ronnieoverby
?
Aaron Stannard
@Aaronontheweb
in fact, I should probably just make the priority calculator immutable
I have no idea why it isn't
I still need to publish post 3 in that series
Ronnie Overby
@ronnieoverby
will read :+1:
Aaron Stannard
@Aaronontheweb
@Silv3rcircl3 so yeah, this is a stumper.... the LocalActorRefProvider throwing when creating the system guardian, but only inside Akka.Streams.Tests and only randomly on some of them?
well, always one sure fire way to fix this
not use the expression compiler that way, period
Aaron Stannard
@Aaronontheweb
ok, inlined that part of the guardian startup process
i don't know why that failed on only the Akka.Streams.Tests
let's see if this works
Aaron Stannard
@Aaronontheweb
yep, that did the trick
although the Thread.Interrupt call we make on one of the specs caused the XUnit test runner to blow up
which is actually kind of entertaining TBH
but otherwise the Akka.Streams.Tests are passing now
Marc Piechura
@marcpiechura
@Aaronontheweb great! Replacement for the Interrupt call is already in the netcore branch see alexvaluyskiy/akka.net@3c6861a if you want to pick it
Peter Hvidgaard
@hvidgaard
Is there any way to create an Actor from a background thread, which can use the "akka.actor.synchronized-dispatcher" dispatcher without capturing the context from a UI thread and injecting it?
it just seems to backwards.