Also, of course, the ingoing or outgoing set of an Atom may be changed by a
MindAgent ... why is this not a problem for concurrency?

On Tue, Sep 30, 2008 at 1:51 PM, Linas Vepstas <[EMAIL PROTECTED]>wrote:

> 2008/9/30 Ben Goertzel <[EMAIL PROTECTED]>:
> >
> > Linas,
> >
> > But the truth values, attention values, etc. associated with an Atom are
> not
> > immutable ...
> >
> > so for instance, a MindAgent could add a new Version within a
> > CompositeTruthValue
> > object associated with an Atom ...
>
> Hmm. Well, if one thread is looking at a truth value while
> another is setting it, then, in today's system, there would be
> a crash (because the old value is deleted, and
> Atom::getTruthValue() returns a reference).
>
> This could be solved by having AtomTruthValue() return
> a copy, instead of a reference; but then one pays the
> penalty of creating a copy, for each and every access.
> (this is "copy-on-read").
>
> By contrast, in a garbage-collected system, the worst that
> would happen is that someone is looking at an "old, stale"
> truth value; as opposed to crashing.  By the principles
> of concurrency, there's "no such thing" as an "old stale
> value" in between synchronization primitives.
>
> --linas
>



-- 
Ben Goertzel, PhD
CEO, Novamente LLC and Biomind LLC
Director of Research, SIAI
[EMAIL PROTECTED]

"Nothing will ever be attempted if all possible objections must be first
overcome "  - Dr Samuel Johnson
_______________________________________________
Mailing list: https://launchpad.net/~opencog-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~opencog-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to