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
