Message-ID: <1393016146.3434.1369376694658.JavaMail.firstname.lastname@example.org> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_3433_1773975258.1369376694657" ------=_Part_3433_1773975258.1369376694657 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
The Agent is a special-purpose thread-safe non-blocking referenc= e implementation inspired by Agents in Clojure.
Agents safe-guard mutable values by allowing only= a single agent-managed thread to make modifications to th= em. The mutable values are not directly accessible from ou= tside, but instead requests have to be sent to the agent a= nd the agent guarantees to process the requests sequentially on behalf of t= he callers. Agents guarantee sequential execution of all requests and so co= nsistency of the values.
Agents are asynchronous active objects that = accept code (functions) as messages. After reception the function is run ag= ainst the internal state of the Agent and the return value of the function = is considered to be the new internal state of the Agent.
To wrap integers, we can certainly use AtomicXXX types of th= e Java platform. When the state or the update algorithms become more comple= x we need more support.
For latest update, see the Agent se= ction of the User Guide and the respective Demos.------=_Part_3433_1773975258.1369376694657--