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

Reply via email to