Some plug-ins don't return negative result on own function "read" even if previous plugin (call "info->next->ops->read") was return negative result: dejitter, invert, lowpass, skip, variance. So, if one of this filters is used - function ts_read don't return negative result, even if input device was upluged (as example).
this is true for the legacy ts_read API (and the rule until now is basically not to touch its user-facing behaviour), but should be fixed in ts_read_mt that can always be used instead.
Some plug-ins don't return negative result on own function "read" even if previous plugin (call "info->next->ops->read") was return negative result: dejitter, invert, lowpass, skip, variance. So, if one of this filters is used - function ts_read don't return negative result, even if input device was upluged (as example).