I propose that we cache the Tcp Extension in the ConnectionActor:

    val tcp = Tcp(context.system)
    def registerTimeout = tcp.Settings.RegisterTimeout

Then the buffer can be checked in and out directly from the extension

Getting an extension is a CHM access, so on Java8 it will be completely lockless for reads