diff options
author | Gerhard Sittig <gerhard.sittig@gmx.net> | 2018-04-23 20:42:54 +0200 |
---|---|---|
committer | Gerhard Sittig <gerhard.sittig@gmx.net> | 2018-04-23 23:25:42 +0200 |
commit | 3f3c4614b551855d7cf56e83ec7fb883592050ab (patch) | |
tree | cbb437be87f0b530e6e36802e09af913ef26ae6a /instance.c | |
parent | f8d25d1f7256a4515b7fb972e3302be2138c8ee1 (diff) | |
download | libsigrokdecode-3f3c4614b551855d7cf56e83ec7fb883592050ab.tar.gz libsigrokdecode-3f3c4614b551855d7cf56e83ec7fb883592050ab.zip |
instance: return SRD_ERR_TERM_REQ when execution shall terminate
The previous implementation internally noticed the "want terminate"
request, and skipped decoder execution to faster get to the end of the
input stream. But an OK return code was provided in that code path, and
more input data was sent by applications (sometimes for many seconds or
few minutes).
Do return a new SRD_ERR_TERM_REQ error code, such that applications can
tell failed execution from requested termination.
Diffstat (limited to 'instance.c')
-rw-r--r-- | instance.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -1266,6 +1266,8 @@ SRD_PRIV int srd_inst_decode(struct srd_decoder_inst *di, g_cond_wait(&di->handled_all_samples_cond, &di->data_mutex); g_mutex_unlock(&di->data_mutex); + if (di->want_wait_terminate) + return SRD_ERR_TERM_REQ; return SRD_OK; } |