Re: partial writes in bse-jack?



On Wed, 7 Jun 2006, Stefan Westerfeld wrote:

On Sun, Jun 04, 2006 at 02:46:38AM +0200, Tim Janik wrote:

so in theory, if your check_io() function was correctly implemented,
i'd expect partial writes to never occour. (that being said, it might
still make sense to guard against them via a Cond or similar, in case
more poll funcitons are being added in the future.)

I debugged it now, and its simply that the the timeout value computed by
my bse jack driver can become 0 (for instance if there are just 32
samples which miss for writing a whole engine block size to the output
ringbuffer).

ok.

When I stop using the timeout, but instead rely on a newly introduced
public bse_engine_mastere_wakeup() function (right now its private), the
code works as expected. Of course setting timeout to  MAX (1,
computedtimeout) also works, but thats not what I want to do, since
timeout based stuff is less reliable when jitter is present than pipe
based signalling.

well, timeout based handling is what the engine and drivers are currently
designed for. i repeatedly told you about that. if you think the current
model can be switched to polling and be as reliable, i need at least 2
things from you:
1) a bse-jack driver that *does* work with timeouts;
2) a patch that switches *all* drivers to notify + polling.

then we have a basis for discussing, testing, benchmarking and working on
timeout vs. poll() handling.
that can and should be done seperately though, independent of jack or
other driver development.

  Cu... Stefan

---
ciaoTJ



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]