+ for (;;) {
+ state = curl_find_state(s);
+ if (state) {
+ break;
+ }
+ QSIMPLEQ_INSERT_TAIL(&s->free_state_waitq, acb, next);
+ qemu_mutex_unlock(&s->mutex);
+ qemu_coroutine_yield();
+ qemu_mutex_lock(&s->mutex);
+ }
+
+ if (curl_init_state(s, state) < 0) {
+ curl_clean_state(state);
+ acb->ret = -EIO;