On Mon, Feb 9, 2015 at 10:25 PM, Poul-Henning Kamp <[email protected]> wrote:
> But for threads in the same address space, using non-isolated means
> of intercommunication (ie: userland mtx/condvar with kernel assist)
> as opposed to kernel mediated means of intercommunication, it
> invariably becomes hairy, bugprone and full of races.
>
> Thus I'm not very thrilled about this idea.

That's what I meant in the second paragraph of my answer to Martin. So
assuming an "isolated" address space (my understanding of workspaces),
a worker thread could avoid a child panic on some code paths. Please
note the quotes around "isolated", I'm not saying workspaces actually are.

You could imagine new `wk_assert`, `WK_AZ`, `WK_AN` etc macros to
avoid boiler-plate code, but only in relevant places.

> I fully agree, but still preferable to running with inconsistent
> data structures.

It would become even harder to debug. My suggestion relies on the
supposition that it would (sometimes) be possible to kill a single worker
thread without corrupting the whole process.

Regards,
Dridi

PS. Maybe I'll start a new Tarnish Cache project in Rust :-)

_______________________________________________
varnish-dev mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev

Reply via email to