Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Guards are not evaluated when the event is fired across multiple kernels #885
This issue is due to the fact that the scoping function is serialized and sent throught the network link. When the scoping function is a lambda, it cannot be deserialized properly into the target host.
We need to re-think the serialization of the scopes when it is used through a network.
Why scope is going throught network link? Because the scope is evaluated when dispatching the event inside the message transport service, i.e. inside the destination host in the case of a network-based communication.
Another issue is: Serialization of the scope breaks the links to the references to local variables inside the agent which emits the event.
Another issue is: Serialization of the scope stores the closure's classname. The corresponding class may be inexistant into the destination host virtual machine.