Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: m-labs/artiq
base: f2134fa4b230
Choose a base ref
...
head repository: m-labs/artiq
compare: 5ca4821a2989
Choose a head ref
  • 2 commits
  • 7 files changed
  • 1 contributor

Commits on Mar 11, 2015

  1. master: watchdog support

    Introduces a watchdog context manager to use in the experiment code that
    terminates the process with an error if it times out. The syntax is:
    
    with self.scheduler.watchdog(20*s):
       ...
    
    Watchdogs timers are implemented by the master process (and the worker
    communicates the necessary information about them) so that they can be
    enforced even if the worker crashes. They can be nested arbitrarily.
    During yields, all watchdog timers for the yielding worker are
    suspended [TODO]. Setting up watchdogs is not supported in kernels,
    however, a kernel can be called within watchdog contexts (and terminating
    the worker will terminate the kernel [TODO]).
    
    It is possible to implement a heartbeat mechanism using a watchdog, e.g.:
    
    for i in range(...):
        with self.scheduler.watchdog(...):
            ....
    
    Crashes/freezes within the iterator or the loop management would not be
    detected, but they should be rare enough.
    sbourdeauducq committed Mar 11, 2015
    Configuration menu
    Copy the full SHA
    d5795fd View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5ca4821 View commit details
    Browse the repository at this point in the history