Yea, that code seems to explain the behavior we're seeing. I opened an
issue for this: http://dev.clojure.org/jira/browse/NREPL-80

On Tue, Feb 9, 2016 at 7:38 PM, Jony Hudson <jonyepsi...@gmail.com> wrote:

> Ahem.
>
> "method" -> "message"
>
>
> Jony
>
>
> On Wednesday, 10 February 2016 00:35:16 UTC, Jony Hudson wrote:
>>
>> I'm pretty fuzzy on how nREPL works, so I might be getting it wrong here
>> ... but I think it processes each method through a `future`. See:
>>
>>
>> https://github.com/clojure/tools.nrepl/blob/master/src/main/clojure/clojure/tools/nrepl/server.clj#L28
>>
>> All of the nREPL operations are async, AFAIK, and I think the future is
>> also relied upon to implement interruptible evaluation. See:
>>
>>
>> https://github.com/clojure/tools.nrepl/blob/master/src/main/clojure/clojure/tools/nrepl/middleware/interruptible_eval.clj#L243
>>
>> But I can't say I really understand that much of the eval code, so like I
>> say, I could be totally wrong here!
>>
>>
>> Jony
>>
>>
>> On Tuesday, 9 February 2016 18:19:09 UTC, Nathan Marz wrote:
>>>
>>> I was doing some work that involved the use of thread locals, and I
>>> noticed that within a REPL session (launched via 'lein repl') my thread
>>> locals would reset themselves to their initial value. I did some digging
>>> and found that the thread id keeps changing within a single REPL session,
>>> e.g.:
>>>
>>> user=> (.getId (Thread/currentThread))
>>> 65
>>> user=> (.getId (Thread/currentThread))
>>> 74
>>> user=> (.getId (Thread/currentThread))
>>> 78
>>> user=> (.getId (Thread/currentThread))
>>> 78
>>> user=> (.getId (Thread/currentThread))
>>> 78
>>> user=> (.getId (Thread/currentThread))
>>> 82
>>>
>>> I'm hoping someone who knows the internals of the REPL could shed some
>>> light onto why this is the behavior and why it was designed this way.
>>>
>>> Thanks,
>>> Nathan
>>>
>>>


-- 
Twitter: @nathanmarz
http://nathanmarz.com

-- 
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