(From widok/widok#29)
Channels created within the scope of a page may never get disposed. Upon route change, all channels associated to the widgets are just not used anymore. Even if the JavaScript engine may free the memory in this situation, a better resource management mechanism is needed.
Most reactive combinators attach an anonymous function to the changes
stream of their data structure. For example:
def take(count: Int): ReadBuffer[T] = { val res = Buffer[T]() val subscription = changes.attach { _ => ... } res }
Here, res
should not be independent from subscription
. Furthermore, the following dispose()
relations should hold:
changes.dispose()
calls subscription.dispose()
subscription.dispose()
calls res.dispose()
res.dispose()
calls subscription.dispose()
Resource management with regards to chained combinators is worth investigating as well.
Presently, some functions return delta streams which cannot provide a dispose()
function. This may lead to resource leaks.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4