The FreeRADIUS server $Id: f3670dba8951ca10eb4948feb3dc3db9423a334f $
Loading...
Searching...
No Matches
Functions
parallel.c File Reference

Implementation of the unlang "parallel" keyword. More...

#include <freeradius-devel/server/rcode.h>
#include <freeradius-devel/server/signal.h>
#include <freeradius-devel/server/state.h>
#include "action.h"
#include "interpret.h"
#include "mod_action.h"
#include "subrequest.h"
#include "interpret_priv.h"
#include "unlang_priv.h"
#include "parallel_priv.h"
#include "child_request_priv.h"
+ Include dependency graph for parallel.c:

Go to the source code of this file.

Functions

static unlang_t * unlang_compile_parallel (unlang_t *parent, unlang_compile_ctx_t *unlang_ctx, CONF_ITEM const *ci)
 
static unlang_action_t unlang_parallel (unlang_result_t *p_result, request_t *request, unlang_stack_frame_t *frame)
 
static void unlang_parallel_cancel_child (unlang_parallel_state_t *state, unlang_child_request_t *cr)
 Cancel a specific child.
 
void unlang_parallel_init (void)
 
static unlang_action_t unlang_parallel_resume (unlang_result_t *p_result, request_t *request, unlang_stack_frame_t *frame)
 
static void unlang_parallel_signal (UNUSED request_t *request, unlang_stack_frame_t *frame, fr_signal_t action)
 Send a signal from parent request to all of it's children.
 

Detailed Description

Implementation of the unlang "parallel" keyword.

Id
807f66b0fcb33a0a33e3bb2a7b6ec51ebf39c98e

Definition in file parallel.c.

Function Documentation

◆ unlang_compile_parallel()

static unlang_t * unlang_compile_parallel ( unlang_t *  parent,
unlang_compile_ctx_t *  unlang_ctx,
CONF_ITEM const *  ci 
)
static

Definition at line 402 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel()

static unlang_action_t unlang_parallel ( unlang_result_t *  p_result,
request_t *  request,
unlang_stack_frame_t *  frame 
)
static

Definition at line 207 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_cancel_child()

static void unlang_parallel_cancel_child ( unlang_parallel_state_t *  state,
unlang_child_request_t *  cr 
)
inlinestatic

Cancel a specific child.

For most states we just change the current state to CANCELLED. For the RUNNABLE state we need to signal the child to cancel itself.

We don't free any requests here, we just mark them up so their rcodes are ignored when the parent is resumed, the parent then frees the child, once we're sure its done being run through the interpreter.

Definition at line 51 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_init()

void unlang_parallel_init ( void  )

Definition at line 457 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_resume()

static unlang_action_t unlang_parallel_resume ( unlang_result_t *  p_result,
request_t *  request,
unlang_stack_frame_t *  frame 
)
static

Definition at line 140 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unlang_parallel_signal()

static void unlang_parallel_signal ( UNUSED request_t *  request,
unlang_stack_frame_t *  frame,
fr_signal_t  action 
)
static

Send a signal from parent request to all of it's children.

Definition at line 110 of file parallel.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: