]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
signal children to be DONE when exiting a parallel section
authorAlan T. DeKok <aland@freeradius.org>
Tue, 21 Nov 2017 18:55:54 +0000 (13:55 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 21 Nov 2017 18:56:28 +0000 (13:56 -0500)
i.e. tell the children that they're cancelled.

src/main/unlang_interpret.c

index e892e781329194219f506c78975e02b8ff262210..6b51881bc75af2b0d678965d76ff3d14404f2e30 100644 (file)
@@ -1237,6 +1237,13 @@ static rlm_rcode_t unlang_parallel_run(REQUEST *request, unlang_parallel_t *stat
                case CHILD_YIELDED:
                        REQUEST_VERIFY(state->children[i].child);
                        rad_assert(state->children[i].child->runnable_id < 0);
+
+                       /*
+                        *      Signal the child that it's going to be
+                        *      stopped.  This tells any child modules
+                        *      to clean up timers, etc.
+                        */
+                       unlang_signal(state->children[i].child, FR_ACTION_DONE);
                        TALLOC_FREE(state->children[i].child);
                        /* FALL-THROUGH */