]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Strip the waiter from its object after the wait completes!
authorTed Lemon <source@isc.org>
Thu, 9 Sep 1999 21:08:28 +0000 (21:08 +0000)
committerTed Lemon <source@isc.org>
Thu, 9 Sep 1999 21:08:28 +0000 (21:08 +0000)
omapip/dispatch.c

index b7a666fd662d9341a32184629f9d44a235d075ff..ea23870064e87ae3e13163347e09438c72e9a183 100644 (file)
@@ -142,6 +142,23 @@ isc_result_t omapi_wait_for_completion (omapi_object_t *object,
                        return status;
        } while (!waiter || !waiter -> ready);
 
+       if (waiter -> outer) {
+               if (waiter -> outer -> inner) {
+                       omapi_object_dereference (&waiter -> outer -> inner,
+                                                 "omapi_wait_for_completion");
+                       if (waiter -> inner)
+                               omapi_object_reference
+                                       (&waiter -> outer -> inner,
+                                        waiter -> inner,
+                                        "omapi_wait_for_completion");
+               }
+               omapi_object_dereference (&waiter -> outer,
+                                         "omapi_wait_for_completion");
+       }
+       if (waiter -> inner)
+               omapi_object_dereference (&waiter -> inner,
+                                         "omapi_wait_for_completion");
+       
        omapi_object_dereference ((omapi_object_t **)&waiter,
                                  "omapi_wait_for_completion");
        return ISC_R_SUCCESS;