I can see this being the case. Nominally, my component looks like this.

Before I log a bug however, let's see first, if anyone is seeing this
behaviour.


(ns a

  (:require [com.stuartsierra.component :as component]


            [taoensso.timbre :as timbre]))

(defrecord A [env]

  component/Lifecycle


  (start [component]

    (assoc component :a (atom {*...*})))

  (stop [component]

    (dissoc component :a)))


(defn component-a [env]

  (map->A {:env env}))



Tim Washington
Interruptsoftware.com <http://interruptsoftware.com>



On Fri, May 9, 2014 at 6:40 PM, James Reeves <ja...@booleanknot.com> wrote:

> If you only created the atom once, the value of the atom would be the same
> no matter where you dereferenced it. If you're seeing two different atoms,
> then the code that created the atom must have been executed more than once.
>
> Without seeing your code it's impossible to know for sure how that
> occurred. There's nothing obvious in the pseudocode you presented that
> would indicate where the atom is being created more than once.
>
> - James
>
>
> On 9 May 2014 22:49, Timothy Washington <twash...@gmail.com> wrote:
>
>> Sorry, just reading this now.
>>
>> I've pivoted on that project, and that code is no longer around. We were
>> going to store analytics data in that atom, but instead are going to do JVM
>> and other kinds of profiling.
>>
>> But if you look at my first message, component *:a* would have had the
>> atom. The *:updater* and *:reader* components were referencing that.
>> Now, if there's any duplication like what you describe, it would have to
>> come where I set up the component system/map. But my code's perspective, I
>> only created that atom once. Sorry I don't have immediate access to that
>> code. I can't show it to you either. But if need be, I can go back in git
>> history, and troubleshoot the codebase as it was on April 30th. But again,
>> my description abouve fairly captures the situation.
>>
>>
>> Lemme know
>>
>> Tim Washington
>> Interruptsoftware.com <http://interruptsoftware.com>
>>
>>
>> On Wed, May 7, 2014 at 1:31 PM, Stuart Sierra <
>> the.stuart.sie...@gmail.com> wrote:
>>
>>> Actually, now that I think about it, that's not right. It shouldn't
>>> matter where or when you create the Atom.
>>>
>>> Instead, what I suspect you have is two or more instances of the
>>> component containing the Atom, thus two different Atoms.
>>>
>>> You can tell if the Atoms are the same object by printing them, which
>>> shows a unique hash of each Atom's identity.
>>>
>>> -S
>>>
>>>
>>>
>>> On Monday, May 5, 2014 6:25:55 PM UTC-4, frye wrote:
>>>
>>>> Ahh, so that was it then. Yeah, I definitely created that atom in the
>>>> start method.
>>>>
>>>>
>>>> On Mon, May 5, 2014 at 3:27 PM, Stuart Sierra <
>>>> the.stuart.sie...@gmail.com> wrote:
>>>>
>>>>> At what point did you **create** the Atom in :a? Any mutable
>>>>> references which need to be shared among all usages of a component must be
>>>>> created in the **constructor**, not the `start` or `stop` methods.
>>>>>
>>>>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to