Ciao a tutti, On Wed, Sep 4, 2019 at 6:14 PM [email protected] [it-torino-java-jug] <[email protected]> wrote: > Ciao Vasco, > se pure asincrono il servizio, mantenersi il riferimento di un oggetto che > non hai allocato, obblighi il chiamante a non poter fare uso di pool.
Bingo. Ho discusso di questo problema con i creatori delle librerie reactive streams, e non sono riuscito a convincerli che ci fosse bisogno di un messaggio all'indietro (rispetto allo stream dei dati) che dicesse "ho terminato di utilizzare il dato". La loro (corretta) argomentazione è stata che A) molti casi non ne hanno bisogno e pagherebbero il costo e B) se hai bisogno di uno stream nella direzione opposta lo crei. In particolare nel tuo esempio, dove il dato è un ByteBuffer (che può essere riutilizzato), non rimane che leggersi la documentazione dove _dovrebbe_ essere dettagliato il comportamento preciso del subscriber: se copia il ByteBuffer (e quindi al ritorno del metodo si può riutilizzare), oppure se mantiene un reference (che obbliga il publisher ad allocare sempre ByteBuffers nuovi per ogni dato). Facci sapere. -- Simone Bordet --- Finally, no matter how good the architecture and design are, to deliver bug-free software with optimal performance and reliability, the implementation technique must be flawless. Victoria Livschitz
