-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Guards are not evaluated when the event is fired across multiple kernels #885
Comments
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. |
This problem could be reproduced when using the |
close #885 Signed-off-by: Stéphane Galland <galland@arakhne.org>
close #885 Signed-off-by: Stéphane Galland <galland@arakhne.org>
See the PR #888. |
close #885 Signed-off-by: Stéphane Galland <galland@arakhne.org>
close #885 Signed-off-by: Stéphane Galland <galland@arakhne.org>
close #885 Signed-off-by: Stéphane Galland <galland@arakhne.org>
close #885 Signed-off-by: Stéphane Galland <galland@arakhne.org>
close #885 Signed-off-by: Stéphane Galland <galland@arakhne.org>
To Reproduce
Run this code on two computers:
Expected behavior
The first agent should display "pong" indefinitely, the second agent should display "ping" indefinitely.
System configuration:
-- SARL version: 0.8.5
-- SARL compiler:
-- Java JDK version (with the manufacturer name): openjdk version "1.8.0_181"
-- Operating System:
Additional context
The computers are connected on a local network with all ports opened, and Hazelcast can connect the SARL frameworks. If the guard
[ it == occurrence.source ]
is commented, the message is received.Originally posted by @gbasso in #883 (comment)
The text was updated successfully, but these errors were encountered: