So I take this as a sign that there is no interest in this ?

Bye
Norman


> On 10. Jul 2018, at 12:06, Norman Maurer <[email protected]> wrote:
> 
> Hi all,
> 
> It came to my attention that you introduced TerminatingThreadLocal in openjdk 
> lately as an “internal class”:
> 
> http://hg.openjdk.java.net/jdk/jdk/rev/106dc156ce6b 
> <http://hg.openjdk.java.net/jdk/jdk/rev/106dc156ce6b>
> 
> I would like to take the chance to ask if you ever considered to make this 
> “non-internal” as I think it would super helpful for some use cases.  To give 
> you some more context let me give you an example of why we would love it in 
> netty.
> 
> So in netty we sometimes pool “direct memory” in ThreadLocals [1]  and have 
> to do some tricks to ensure this direct memory is really released once a 
> Thread exit. Which I think is also exactly one use-case you have here. Sure 
> we can do this with a WeakReference + ReferenceQueue , Cleaner or finalizer 
> but I feel exposing TerminatingThreadLocal would be a lot more elegant. 
> Another advantage would be that we can be sure that the cleanup action would 
> be called in the Thread that holds the value of the ThreadLocal, which is not 
> really possible with using WeakReference + ReferenceQueue , Cleaner or 
> finalizer.
> 
> What we currently doing in netty is basically have our own ThreadLocal [1] 
> implementation and out own Thread sub-class [2] that will ensure we call some 
> method on our TheadLocal that gives us the chance to do the cleanup by 
> wrapping the Runnable[3] that is passed in. This works great but we can not 
> always guarantee that our sub-class of Thread is used to access our 
> ThreadLocal implementation, which means the cleanup action will not run in 
> this case.
> 
> Thanks,
> Norman
> 
> [1] 
> https://github.com/netty/netty/blob/netty-4.1.26.Final/common/src/main/java/io/netty/util/concurrent/FastThreadLocal.java
>  
> <https://github.com/netty/netty/blob/netty-4.1.26.Final/common/src/main/java/io/netty/util/concurrent/FastThreadLocal.java>
> [2] 
> https://github.com/netty/netty/blob/netty-4.1.26.Final/common/src/main/java/io/netty/util/concurrent/FastThreadLocalThread.java
>  
> <https://github.com/netty/netty/blob/netty-4.1.26.Final/common/src/main/java/io/netty/util/concurrent/FastThreadLocalThread.java>
> [3] 
> https://github.com/netty/netty/blob/netty-4.1.26.Final/common/src/main/java/io/netty/util/concurrent/FastThreadLocalRunnable.java
>  
> <https://github.com/netty/netty/blob/netty-4.1.26.Final/common/src/main/java/io/netty/util/concurrent/FastThreadLocalRunnable.java>
> 
> 
> 
> 
> 
> 

Reply via email to