On Sunday, 13 July 2014 01:46:41 UTC+10, Daniel Kersten wrote: > Channels are cheap, but unless they get garbage collected (and I assume not > closing them will prevent this), they will still take up some resources. > > > Related and important is that you shut down any go blocks that you create in > IWillMount, especially if they take from a channel which may still be > receiving data (eg: through mux or pub/sub). If you don't shut these down, > they will continue to run even after the component has unmounted and if the > component is later mounted again, you will have multiple go blocks doing the > same thing! Besides using resources, this can actually be dangerous if you > are accessing owner inside the go block (eg to set local state) as you may > end up accessing an unmounted owner. The simplest solution is having a kill > channel that you listen on using async/alt that gets closed in the > IWillUnmount and that terminates the go block.
Thanks for the explanation. Would you be able to provide a code example that demonstrates how to properly clean up a pub/sub watcher within a component's IWillUnmount lifecycle method? -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/clojurescript.
