Recent Releases of later
later - later 1.4.4
- Fixed timings in a test (#237). No user-facing changes.
- C++
Published by shikokuchuo 10 months ago
later - later 1.4.3
Fixed #215: The
autorunargument ofcreate_loop(), long deprecated, is removed (#222).Fixed #167:
.Random.seedis no longer affected when the package is loaded (#220).Set file-level variables as
staticto avoid triggering-Wmissing-variable-declarations(@michaelchirico, #163).
- C++
Published by shikokuchuo 11 months ago
later - later 1.4.2
- Fixed #208: Fixed
keyword is hidden by macro definitioncompiler warning when using a C23 compiler. (@shikokuchuo, #209)
- C++
Published by shikokuchuo about 1 year ago
later - later 1.4.1
- Fixed #203: Resolves an issue where packages that have
LinkingTo: later(includingpromisesandhttpuv) and were built againstlater1.4.0, would fail to load on systems that actually had older versions oflaterinstalled, erroring out with the message "function 'execLaterFdNative' not provided by package 'later'". With this fix, such dependent packages should gracefully deal with older versions at load time, and complain with helpful error messages if newer C interfaces (than are available on the installedlater) are accessed. (#204)
- C++
Published by jcheng5 over 1 year ago
later - later 1.4.0
Adds
later_fd()which executes a function when a file descriptor is ready for reading or writing, at some indeterminate time in the future (subject to an optional timeout). This facilitates an event-driven approach to asynchronous or streaming downloads. (@shikokuchuo and @jcheng5, #190)Fixed #186: Improvements to package load time as
rlangis now only loaded when used. This is a notable efficiency for packages with only a 'linking to' dependency onlater. Also updates to native symbol registration from dynamic lookup. (@shikokuchuo and @wch, #187)Fixed #191: Errors raised in later callbacks were being re-thrown as generic C++ std::runtime_error with Rcpp >= 1.0.10 (since 2022!). (@shikokuchuo and @lionel-, #192)
- C++
Published by shikokuchuo over 1 year ago
later - later 1.3.2
Fixed
unused variablecompiler warning. (@MichaelChirico, #176)Fixed #177: The order of includes in
later.hcould cause compilation errors on some platforms. (@jeroen, #178)Closed #181: Fix R CMD check warning re error() format strings (for r-devel). (#133)
- C++
Published by cpsievert over 2 years ago
later - later 1.3.1
- For C function declarations that take no parameters, added
voidparameter. (#172)
- C++
Published by wch about 3 years ago
later - later 1.3.0
Closed #148: When later was attached,
parallel::makeForkCluster()would fail. (#149)Fixed #150: It was possible for callbacks to execute in the wrong order if the clock time was changed in between the scheduling of two callbacks. (#151)
- C++
Published by schloerke almost 5 years ago
later - later 1.2.0
Closed #138: later is now licensed as MIT. (#139)
Closed #140: Previously, the event loop stopped running if the R process was forked. (#141)
Closed #143: Packages which link to later no longer need to take a direct dependency on Rcpp, because
later.hno longer includesRcpp.h. (#144)Removed dependency on the BH package. C++11 is now required. (#147)
- C++
Published by wch about 5 years ago
later - later 0.6
Fix a hang on address sanitized (ASAN) builds of R. Issue #16, PR #17
The
run_now()function now takes atimeoutSecsargument. If no tasks are ready to run at the timerun_now(timeoutSecs)is invoked, we will wait up totimeoutSecsfor one to become ready. The default value of0meansrun_now()will return immediately if no tasks are ready, which is the same behavior as in previous releases. PR #19The
run_now()function used to return only when it was unable to find any more tasks that were due. This means that if tasks were being scheduled at an interval faster than the tasks are executed,run_now()would never return. This release changes that behavior so that a timestamp is taken asrun_now()begins executing, and only tasks whose timestamps are earlier or equal to it are run. PR #18Fix compilation errors on Solaris. Reported by Brian Ripley. PR #20
- C++
Published by wch about 6 years ago
later - later 0.7.1
Fixed issue #39: Calling the C++ function
later::later()from a different thread could cause an R GC event to occur on that thread, leading to memory corruption. PR #40Decrease latency of repeated top-level execution.
- C++
Published by wch about 6 years ago
later - later 0.7.2
Fixed issue #48: Occasional timedwait errors from later::run_now. Thanks, @vnijs! PR #49
Fixed a build warning on OS X 10.11 and earlier. PR #54
- C++
Published by wch about 6 years ago
later - later 0.7.3
- Fixed issue #57: If a user interrupt occurred when later (internally) called
sys.nframe(), the R process would crash. PR #58
- C++
Published by wch about 6 years ago
later - later 0.7.4
- Fixed issue #45 and #63: glibc 2.28 and musl (used on Arch and Alpine Linux) added support for C11-style threads.h, which masked functions from the tinycthread library used by later. Later now detects support for threads.h and uses it if available; otherwise it uses tinycthread. PR #64
- C++
Published by wch about 6 years ago
later - later 0.7.5
- Fixed issue where the order of callbacks scheduled by native later::later could be nondeterministic if they are scheduled too quickly. This was because callbacks were sorted by the time at which they come due, which could be identical. Later now uses the order of insertion as a tiebreaker. PR #69
- C++
Published by wch about 6 years ago
later - later 0.8.0
Fixed issue #77: On some platforms, the system's C library has support for C11-style threads, but there is no
threads.hheader file. In this case, later's configure script tried to use the tinycthread, but upon linking, there were function name conflicts between tinycthread and the system's C library. Later no longer tries to use the system'sthreads.h, and the functions in tinycthread were renamed so that they do not accidentally link to the system C library's C11-style thread functions. PR #79Added
allargument torun_now(); defaults toTRUE, but if set toFALSE, thenrun_nowwill run at most one later operation before returning. PR #75Fixed issue #74: Using later with R at the terminal on POSIX could cause 100% CPU. This was caused by later accidentally provoking R to call its input handler continuously. PR #76
Fixed issue #73: Linking later on ARM failed because
boost::atomicrequires the-lboost_atomicflag. Now later tries to usestd::atomicwhen available (when the compiler supports C++11), and falls back toboost::atomicif not. PR #80
- C++
Published by wch about 6 years ago
later - later 1.0.0
- Added private event loops: these are event loops that can be run independently from the global event loop. These are useful when you have code that schedules callbacks with
later(), and you want to callrun_now()block and wait for those callbacks to execute before continuing. Without private event loops, if you callrun_now()to wait until a particular callback has finished, you might inadvertantly run other callbacks that were scheduled by other code. With private event loops, you can create a private loop, schedule a callback on it, then callrun_now()on that loop until it executes, all without interfering with the global loop. (#84)
- C++
Published by wch about 6 years ago
later - later 1.1.0.1
Private event loops are now automatically run by their parent. That is, whenever an event loop is run, its children event loops are automatically run. The
create_loop()function has a new parameterparent, which defaults to the current loop. The auto-running behavior can be disabled by usingcreate_loop(parent=NULL). (#119)Fixed #73, #109: Previously, later did not build on some platforms, notably ARM, because the
-latomiclinker was needed on those platforms. A configure script now detects when-latomicis needed. (#114)Previously,
execLaterNativewas initialized when the package was loaded, but notexecLaterNative2, resulting in a warning message in some cases. (#116)
- C++
Published by wch about 6 years ago