Yes. I noticed that. :)
I was only testing with the ByteCounter example that comes with tomcat.That
example uses nio, so there's no new thread. As soon as I use...

```
val ac = req.startAsync();
ac.start(() -> {
   // <logic in here>
});
```
The runnable does not get the threadlocal, obviously. :)

Thanks for the feedback Chris!

[]s,
Thiago.


On Tue, Mar 9, 2021 at 3:03 PM Christopher Schultz <
ch...@christopherschultz.net> wrote:

> Thiago,
>
> On 3/9/21 08:17, Thiago Veronezi wrote:
> > I have a java agent that has its own transaction feature and it does it
> by
> > using Threadlocals. The agent transactions feature seems to work ok with
> > Tomcat async requests.
> >
> > Does anyone know it's fine to use threadlocals on async requests?
>
> It's definitely *not* fine to use ThreadLocal with asynchronous
> requests. If it's working for you, its only due to some very lucky
> circumstances.
>
> If you need to store information between invocations of IO callbacks,
> you will need to store that information in the request/response objects.
>
> -chris
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

Reply via email to