+ /* host_to_ping points to the host to which to send the next ping. The
+ * pointer is advanced to the next host in the linked list after the
+ * ping has been sent. If host_to_ping is NULL, no more pings need to be
+ * send out. */
+ pinghost_t *host_to_ping = obj->head;
+
+ /* pings_in_flight is the number of hosts we sent a "ping" to but didn't
+ * receive a "pong" yet. */
+ int pings_in_flight = 0;
+
+ while (pings_in_flight > 0 || host_to_ping != NULL)