The FreeRADIUS server $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
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 <freeradius-devel/server/request.h>
#include <freeradius-devel/util/table.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_tunlang_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
05b0d28fec3bd95e17224e99c8e2107a444d09cd

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 391 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 201 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 intepreter.

Definition at line 53 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 446 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 134 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 108 of file parallel.c.

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