Peter Maydell <peter.mayd...@linaro.org> writes: > On 22 June 2012 09:00, Peter Crosthwaite > <peter.crosthwa...@petalogix.com> wrote: >> On Fri, Jun 22, 2012 at 5:50 PM, Jan Kiszka <jan.kis...@siemens.com> wrote: >>> Not sure if I understood the intention yet: Is this supposed to fix an >>> issue with the current usage of coroutines or to extend their usage >>> beyond that? In the latter case, please don't do this. We'd rather like >>> to get rid of them long term. > >> My extended usage, which is under development and not ready for the >> list. But are you saying qemu-coroutine is deprecated? If so Ill just >> re-impelement my work with threads, mutexes and condition vars, but >> coroutines are the most natural way of doing it. > > Basically coroutines are nastily unportable and we've had a set > of problems with them (as witness the fact that we have three > separate backend implementations!). There is supposedly some sort > of migration plan for getting them out of the block layer eventually; > they're a kind of halfway house for avoiding synchronous I/O there > AIUI. I would much prefer not to see any further use of them in new > code. Fundamentally C doesn't support coroutines and it's much better > to just admit that IMHO and use more idiomatic design approaches > instead.
I think you're overstating your case. People have been doing coroutines in C for decades, on a huge range of machines. They wouldn't have done so if it wasn't worth their while. Not what I'd call a "fundamental" problem. In my opinion, coroutines have been useful for us so far. Whether they remain useful, or serve us just as a stepping stone towards general threads remains to be seen. As Kevin said, there are no concrete plans to convert the block layer away from coroutines.