Am 15.03.2012 15:42, schrieb Stefan Hajnoczi: > On Thu, Mar 15, 2012 at 1:37 PM, Anthony Liguori <aligu...@us.ibm.com> wrote: >> + sock = socket(PF_UNIX, SOCK_STREAM, 0); >> + g_assert_no_errno(sock); >> + >> + addr.sun_family = AF_UNIX; >> + snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path); >> + >> + pid = fork(); >> + if (pid == 0) { >> + command = g_strdup_printf("%s " >> + "-qtest unix:%s,server,nowait " >> + "-qtest-log /dev/null " >> + "-pidfile %s " >> + "-machine accel=qtest " >> + "%s", qemu_binary, socket_path, >> + pid_file, >> + extra_args ?: ""); >> + >> + ret = system(command); >> + exit(ret); >> + g_free(command); >> + } >> + >> + do { >> + sleep(1); >> + ret = connect(sock, (struct sockaddr *)&addr, sizeof(addr)); >> + } while (ret == -1); > > I believe Kevin suggested using -qtest unix:%s and creating the listen > socket in the test program rather than inside QEMU. The advantage is > that we never sleep(3), instead we accept(2) the connection from QEMU > and get going right away. > > This can be added as a patch later. > > Kevin: Do you already have a patch or does someone need to write it?
I just complained (and reduced the delay locally). Paolo suggested a real solution, which may have been what you describe, I don't remember the details. Kevin