X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Frconn.c;h=f2d074aa02b87e0aab207ce84bd557e26e3396b0;hb=36775dad3505929f8370166c33e8e0f04ca96c1c;hp=b6e958eeda0dbf8e746a85b37c711ca5b02456a1;hpb=ec6fde61c85ff6a57b05d422a9d8b5ef679ad928;p=openvswitch diff --git a/lib/rconn.c b/lib/rconn.c index b6e958ee..f2d074aa 100644 --- a/lib/rconn.c +++ b/lib/rconn.c @@ -459,6 +459,15 @@ void rconn_run(struct rconn *rc) { int old_state; + size_t i; + + if (rc->vconn) { + vconn_run(rc->vconn); + } + for (i = 0; i < rc->n_monitors; i++) { + vconn_run(rc->monitors[i]); + } + do { old_state = rc->state; switch (rc->state) { @@ -476,7 +485,17 @@ rconn_run(struct rconn *rc) void rconn_run_wait(struct rconn *rc) { - unsigned int timeo = timeout(rc); + unsigned int timeo; + size_t i; + + if (rc->vconn) { + vconn_run_wait(rc->vconn); + } + for (i = 0; i < rc->n_monitors; i++) { + vconn_run_wait(rc->monitors[i]); + } + + timeo = timeout(rc); if (timeo != UINT_MAX) { unsigned int expires = sat_add(rc->state_entered, timeo); unsigned int remaining = sat_sub(expires, time_now());