You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
_ can be used in an assignment to effectively throw away a result
Unlike using a variable like dummy, _ acts as a wildcard from a type
perspective, so that we can do _ = 3 and _ = "a", while if we attempt to
use another dummy variable name we will get a type error as we try to assign
it values with different types
it is a reference to the own actor and holds the "external" view, i.e. it
can be passed to another actor as a reference to the local actor
Fixed
Correct DB client comm thread to avoid potential deadlock [#1088]
Incorrect handling of error return status from select meant we could attempt
to read on fds that had no data and thus the comm thread would deadlock.
Now we do proper error handling, always continuing for another spin &
attempt at select in case we get an error back.
The (under development) garbage collector (GC) uses signals to instruct
threads to pause for stop the world events and thus we end up interrupting
the select loop a lot more frequently than before, thus surfacing this bug.
Correct DB client comm thread to avoid busy waiting [#1089]
On Linux, using select() with a timeout, if the select is interrupted the
timeout value will be modified to reflect the time not slept. Thus the next
select in our comm thread loop would sleep for a shorter period of time.
Depending on the timing of the interrupt, the sleep might be shortened to
effectively form a busy wait.
The (under development) garbage collector (GC) uses signals to instruct
threads to pause for stop the world events and thus we end up interrupting
the select loop a lot more frequently than before, thus surfacing this bug.
Fixed by always resetting the timeout value in the loop.
Make RTS DB clients stick to one partition [#1087]
Make sure RTS (a DB client) does not hop between different DB server
partitions even if they learn about disjoint gossip views.
Prevents incorrect operation when DB servers are not aware of each other but
are "joined" by a RTS that see all the servers.
This scenario is most easily reproduced by starting DB servers without
specifying a seed, and so the DB servers won't see each other, and then let
a RTS connect to the DB servers, which then sees a view of all 3 servers.
This is now rejected as invalid.
Using vector clocks to determine and reject invalid views. Very elegant =)
It returned a wildly incorrect results as the nanoseconds part was not
properly added up with seconds.
Include argp-standalone library in libActonDeps [#1058]
No more external dependencies!
argp is available as part of the system on GNU/Linux but on MacOS we have
relied on the argp-standalone package installed via brew. We now prefer to
use our own on both Linux and MacOS.
Acton system is now compiled with -Werror to improve code quality [#1060]
There are some exceptions to this but the overall goal is to be essentially
free of compilation warnings