On 03/15/2012 09:42 AM, Stefan Hajnoczi wrote:
On Thu, Mar 15, 2012 at 1:37 PM, Anthony Liguori<[email protected]> 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.
Yeah, I missed that, it's an easy change to make. I'll update. Regards, Anthony Liguori
This can be added as a patch later. Kevin: Do you already have a patch or does someone need to write it? Stefan
