- Moved (in|de)crementBusyCount calls out of Context and into Observer
- decrementBusyCount is (effectively) deferred for async observers until
the async operation is complete
- invalidateLater didn't force(session), almost certainly was buggy
- invalidateLater, reactiveTimer, and manageInputs all now use a new
session$cycleStartAction, which delays their effect until observers
(including async ones) are done executing
Also changed the classes of reactive expressions and reactiveVal
from "reactive" and "reactiveVal" to c("reactiveExpr", "reactive")
and c("reactiveVal", "reactive")
* added skipFirs arg to observeEvent
* create getCurrentObserver() function
* better NEWS entry
* made code more consistent
* implemented `once` param to `observeEvent`; extensive documentation for `getCurrentObserver`
* implement dig param to `getCurrentObserver`
* fix bug that was causing unit tests to fail
* take two
* git commit
* removed function getCurrentObserver
* delete .globals$currentObserver variable
* update docs
* typo
* remove dupes in index.r (bah humbug)
* rerun devtools::document
* Rename invalidateReactiveValue to freezeReactiveValue
* Make onFlush and onFlushed use 'once' argument
* session$flushOutput: schedule another flush if needed
* Catch all errors before they propagate to websocket
* Restore original logic for progressKeys
* Fix#931: Observer memory leak
Observers were being prevented from being garbage collected by
their own onReactiveDomainEnded() event handlers. This commit
fixes that by making sure that those event handlers are only
registered when autoDestroy=TRUE, and that they are unregistered
both on destruction and when autoDestroy is changed.
* Remove extraneous self$ prefixes
* Add comment explaining autoDestroyHandle