Commit Graph

1642 Commits

Author SHA1 Message Date
Alexandru Gagniuc 33c6e4c5a4 session: Make sr_session_stop thread-safe
With the sigrok session running in a worker thread, if sr_session_stop is called
from another thread, it shuts down the pollfds used by the hardware drivers,
without ensuring that the sigrok event loop is no longer using those pollfds.

On the demo driver, this involves shutting down the GIOChannels, causing a
segfault when the sigrok event loop tries to use them. This is evident when
using the Stop button in PulseView, while the session is running.

This isn't a problem with just the demo driver; any driver's resources may be
freed by sr_session_stop concurrently with the sigrok session running.

To solve this problem, we don't touch the session itself in sr_session_stop().
Instead, we mark it for decommissioning and return. The session polls this flag,
and shuts itself down when requested.

This fixes bug 4.

Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2013-04-14 23:39:15 +02:00
Joel Holdsworth 33ef757383 demo: Keep a pointer to dev_context in sr_dev_inst and vice-versa 2013-04-14 23:39:15 +02:00
Joel Holdsworth e053204700 demo: Only one GIOChannel is needed 2013-04-14 23:39:15 +02:00
Joel Holdsworth bbd7ef0f18 demo: Fixed glitching in increment signal 2013-04-14 23:39:15 +02:00
Joel Holdsworth f0b6ae19a8 alsa: Set the probe index 2013-04-14 23:39:15 +02:00
Jan Luebbe 9e5670d0ab zeroplus-logic-cube: add USB ID for LAP-16128U 2013-04-14 17:06:57 +02:00
Martin Ling 6bb192bc05 rigol-ds1xx2: support digital channels. 2013-04-14 16:57:02 +02:00
Martin Ling a789b61087 rigol-ds1xx2: doesn't actually support SR_CONF_LIMIT_SAMPLES 2013-04-14 16:57:01 +02:00
Martin Ling ee7e9bee5d rigol-ds1xx2: fix handling of partial frames. 2013-04-14 16:57:01 +02:00
Bert Vermeulen 4c7aca66de ignore test leftovers 2013-04-14 16:44:49 +02:00
Bert Vermeulen 0c05591abf ols: Support get/set/list on all device options
Where it makes sense: _LOGIC_ANALYZER and _TRIGGER_TYPE don't have much
use for all of them.
2013-04-14 00:36:05 +02:00
Bert Vermeulen 8f35be72b4 rigol-ds1xx2: Use g_usleep() for portability 2013-04-12 19:42:44 +02:00
Uwe Hermann 406569ddea Bump glib requirement to >= 2.32.0.
This is now required, e.g. due to the usage of g_variant_new_fixed_array().
2013-04-12 18:47:06 +02:00
Uwe Hermann 169dbe8577 rigol-ds1xx2: Whitespace, minor fix.
Return SR_ERR_MALLOC for failed malloc, not SR_ERR.
2013-04-12 18:44:28 +02:00
Uwe Hermann 34e4c27391 unittests: Adapt to new GVariant system. 2013-04-12 17:59:38 +02:00
Uwe Hermann ff08a52a0f Fix two minor compiler warnings. 2013-04-12 17:45:01 +02:00
Bert Vermeulen ba6568c5ad output/vcd: Use selected probes, not lowest-numbered ones
Thanks to Andrew Bardsley for the patch.
2013-04-11 18:49:24 +02:00
Bert Vermeulen 254dd102e8 rigol-ds1xx2: Support for all channels, proper defaults
Since this driver supports devices with a control panel and display,
we take the defaults from the device -- not a set of sensible
defaults as usual.
2013-04-11 18:32:08 +02:00
Bert Vermeulen 88e429c97f rigol-ds1xx2: fix channel numbers
Copyright bump, too.
2013-04-11 18:32:08 +02:00
Bert Vermeulen a3df166f02 rigol-ds1xx2: better debugging 2013-04-11 18:32:08 +02:00
Bert Vermeulen 75d8a4e576 rigol-ds1xx2: properly send frame begin/end packets 2013-04-11 18:32:08 +02:00
Bert Vermeulen 7991784841 hantek-dso: Support SR_CONF_NUM_TIMEBASE/SR_CONF_NUM_VDIV 2013-04-11 18:32:08 +02:00
Bert Vermeulen d62d7ad151 rigol-ds1xx2: Support SR_CONF_NUM_TIMEBASE/SR_CONF_NUM_VDIV 2013-04-11 18:32:08 +02:00
Bert Vermeulen 2efa699fda Add SR_CONF keys to report the number of timebases and vdivs
Number of timebases is needed to properly interpret a frame's worth
of samples. Number of vertical divisions isn't, but may nevertheless
be interesting for a frontend that wants to reproduce the scope's
native display.
2013-04-11 18:32:08 +02:00
Bert Vermeulen d8284802ca use driver callbacks directly 2013-04-11 18:32:08 +02:00
Bert Vermeulen 861c447bfb rigol-ds1xx2: SR_CONF_TIMEBASE and _VDIVS lists are now an array of tuples 2013-04-11 18:32:08 +02:00
Bert Vermeulen 6cefe516aa return SR_ERR_ARG if a driver doesn't implement sr_config_*() 2013-04-11 18:32:08 +02:00
Bert Vermeulen 82b904b173 Add Rigol DS1052E/1102E VID:PID 2013-04-11 18:32:08 +02:00
Bert Vermeulen 3973ee26f5 hantek-dso: SR_CONF_TIMEBASE and _VDIVS lists are now an array of tuples 2013-04-11 18:32:08 +02:00
Bert Vermeulen 034accb512 hantek-dso: move buffer sizes to device context
There are only two sizes for every device: 10k and the complete
per-channel buffer size. This can be doubled if one channel is disabled.
2013-04-11 18:32:08 +02:00
Bert Vermeulen fe9ac25250 ols: Get rid of gcc warnings 2013-04-11 18:32:08 +02:00
Bert Vermeulen 1bec72d2ac chronovu-la8: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen afdf6d6a20 tondaj-sl-814: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen 7d93a62ea3 uni-t-dmm: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen ede25f4e6f serial-dmm: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen f6a0ac9f62 rigol-ds1xx2: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen 2c2be40189 mic-985xx: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen a9ed6877f7 link-mso19: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen 510b3e692a brymen-dmm: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen 2c9c0df86e asix-sigma: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen aa0dbd683c alsa: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen 3316e149d0 zeroplus-logic-cube: fix samplerate setting 2013-04-11 18:32:07 +02:00
Bert Vermeulen e0e150672a sr_voltage_string(): deprecate struct sr_rational 2013-04-11 18:32:07 +02:00
Bert Vermeulen 8386096f01 zeroplus-logic-cube: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen c8733a2bbb nexus-osciprime: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen e44ac12a29 agilent-dmm: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen a59b4eef55 victor-dmm: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen 70424328c1 fluke-dmm: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen dccda194db colead-slm: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00
Bert Vermeulen 7faf69da10 lascar-el-usb: Adjust to GVariant-based sr_config_* functions 2013-04-11 18:32:07 +02:00