2
0
mirror of https://github.com/m-labs/artiq.git synced 2024-12-26 03:38:25 +08:00
artiq/artiq
whitequark b30734a105 runtime: fix a race condition with async RPCs.
session.rs has code like:

    while !rpc_queue::empty() {
        try!(process_kern_queued_rpc(stream, &mut session))
    }

    // A

    if mailbox::receive() != 0 {
        try!(process_kern_message(waiter, Some(stream), &mut session));
    }

If both an async and a mailbox RPC (async or large sync) are posted
at point A then they will be processed out of order.
This commit fixes the issue by flushing the async RPC queue before
posting any RPC to the mailbox.
2016-11-01 13:22:22 +00:00
..
applets applets: simplify command lines 2016-09-04 23:32:09 +08:00
browser master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
compiler compiler: add support for async RPCs. 2016-10-30 00:57:31 +00:00
coredevice runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
dashboard dashboard/datasets: use scientific spinbox and increase number of decimals, closes #572 2016-10-17 19:57:59 +08:00
devices pdq2: sync with pdq2 2016-10-18 09:43:46 +02:00
examples master: archive input datasets. Closes #587 2016-10-18 17:11:07 +08:00
frontend scheduler: default submission arguments, closes #577 2016-10-18 17:11:06 +08:00
gateware gateware: rewrite mailbox to use bits_for. 2016-11-01 06:28:43 +00:00
gui gui: use bare QSpinBox for integer NumberEntries. Closes #558 2016-09-14 10:53:24 +08:00
language make set_dataset and mutate_dataset async RPCs 2016-11-01 11:11:41 +08:00
master master/worker_db: set default value for archive 2016-10-19 20:12:16 +08:00
protocols pc_rpc: raise AttributeError immediately for nonexistent RPC methods. Closes #534 2016-09-14 11:22:07 +08:00
runtime runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
runtime.rs runtime: fix a race condition with async RPCs. 2016-11-01 13:22:22 +00:00
sim sim: align API closer to non-sim 2016-02-23 21:01:03 +01:00
test runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
wavesynth wavesynth: silence is a channel property (closes #348) 2016-04-07 21:51:29 +08:00
__init__.py artiq_dir: move out of tools to unlink dependencies 2016-01-25 18:15:50 -07:00
_version.py versioneer: remote tag_prefix = v 2016-01-18 21:28:09 -07:00
appdirs.py add appdirs 2016-07-18 16:40:18 +02:00
experiment.py artiq.experiment: merge language and coredevice namespaces 2016-01-25 17:24:00 -07:00
monkey_patches.py monkey-patch Python 3.5.2 to disable broken asyncio.base_events._ipaddr_info optimization (#506) 2016-07-13 11:35:16 +08:00
tools.py tools: cleanup artiq_version 2016-08-04 19:42:13 +08:00