Go to file
Soeren Apel 7f894d958e Fix #1132 by passing segment IDs, not segment instances
Passing segment instances fails because this creates a race condition.
When a long conversion is taking place, the SignalBase::samples_added
signal is called often but since it's in a separate thread, the calls
are queued and aren't executed immediately. Now if the conversion is
restarted - for example as a result of a changed conversion threshold -
then the segments holding the converted data are destroyed, rendering
the pointers submitted as parameters to samples_added invalid.

Once the signal queue is processed, those invalid pointers will be
accessed and PV segfaults.

Since the signal queue can neither be emptied nor flushed, this
leaves only two sensible choices:
1) Signal samples_added less often, thereby reducing the chance of
signals being queued
2) Supply the segment ID instead of the segment instance as that's
essentially the only thing we currently care about - in fact, the
only user of samples_added (ViewBase::on_samples_added) uses the
instance to query only this

As #1 is only a band-aid and not a waterproof solution, I chose
to go with #2.
2018-03-05 23:45:46 +01:00
CMake
android
contrib
doc doc: Update pulseview(1) manpage, add --no-scan option (-D) 2018-01-26 17:35:31 +01:00
icons Add segment display mode icons 2018-01-10 00:34:39 +01:00
pv Fix #1132 by passing segment IDs, not segment instances 2018-03-05 23:45:46 +01:00
test Adjust unit tests 2018-02-07 19:41:56 +01:00
.gitignore
CMakeLists.txt win32: Use -mwindows only for non-Debug targets. 2018-01-13 18:42:36 +01:00
COPYING
Doxyfile
HACKING
INSTALL
NEWS
README
config.h.in
extdef.h
main.cpp main: introduce -D cmdline option, don't auto-scan for devices 2018-01-26 17:35:31 +01:00
pulseview.qrc Add segment display mode icons 2018-01-10 00:34:39 +01:00
pulseviewico.rc
signalhandler.cpp
signalhandler.hpp

README

-------------------------------------------------------------------------------
README
-------------------------------------------------------------------------------

The sigrok project aims at creating a portable, cross-platform,
Free/Libre/Open-Source signal analysis software suite that supports various
device types (such as logic analyzers, oscilloscopes, multimeters, and more).

PulseView is a Qt-based LA/scope/MSO GUI for sigrok.


Status
------

PulseView is in a usable state and has had official tarball releases.


Copyright and license
---------------------

PulseView is licensed under the terms of the GNU General Public License
(GPL), version 3 or later.

While some individual source code files are licensed under the GPLv2+, and
some files are licensed under the GPLv3+, this doesn't change the fact that
the program as a whole is licensed under the terms of the GPLv3+ (e.g. also
due to the fact that it links against GPLv3+ libraries).

Please see the individual source files for the full list of copyright holders.


Copyright notices
-----------------

A copyright notice indicating a range of years, must be interpreted as having
had copyrightable material added in each of those years.

Example:

 Copyright (C) 2010-2013 Contributor Name

is to be interpreted as

 Copyright (C) 2010,2011,2012,2013 Contributor Name


Icons authors and licenses
--------------------------

icons/information.svg: Bobarino
  https://en.wikipedia.org/wiki/File:Information.svg


Mailing list
------------

 https://lists.sourceforge.net/lists/listinfo/sigrok-devel


IRC
---

You can find the sigrok developers in the #sigrok IRC channel on Freenode.


Website
-------

 http://sigrok.org/wiki/PulseView