On 03/15/2012 09:42 AM, Stefan Hajnoczi wrote:
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.
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