Merge branch 'master' of github.com:gwsystems/sledge-serverless-framework into http-parsing-listener
commit
38532dec63
@ -0,0 +1,47 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "sandbox_state.h"
|
||||||
|
#include "sandbox_types.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef void (*sandbox_state_transition_hook_t)(struct sandbox *);
|
||||||
|
extern sandbox_state_transition_hook_t sandbox_state_transition_from_hooks[SANDBOX_STATE_COUNT];
|
||||||
|
extern sandbox_state_transition_hook_t sandbox_state_transition_to_hooks[SANDBOX_STATE_COUNT];
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
sandbox_state_transition_from_hook(struct sandbox *sandbox, sandbox_state_t state)
|
||||||
|
{
|
||||||
|
assert(sandbox != NULL);
|
||||||
|
assert(state < SANDBOX_STATE_COUNT);
|
||||||
|
|
||||||
|
sandbox_state_transition_from_hooks[state](sandbox);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
sandbox_state_transition_to_hook(struct sandbox *sandbox, sandbox_state_t state)
|
||||||
|
{
|
||||||
|
assert(sandbox != NULL);
|
||||||
|
assert(state < SANDBOX_STATE_COUNT);
|
||||||
|
|
||||||
|
sandbox_state_transition_to_hooks[state](sandbox);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
sandbox_state_transition_from_hook_register(sandbox_state_t state, sandbox_state_transition_hook_t cb)
|
||||||
|
{
|
||||||
|
assert(state < SANDBOX_STATE_COUNT);
|
||||||
|
assert(cb != NULL);
|
||||||
|
|
||||||
|
sandbox_state_transition_from_hooks[state] = cb;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
sandbox_state_transition_to_hook_register(sandbox_state_t state, sandbox_state_transition_hook_t cb)
|
||||||
|
{
|
||||||
|
assert(state < SANDBOX_STATE_COUNT);
|
||||||
|
assert(cb != NULL);
|
||||||
|
|
||||||
|
sandbox_state_transition_to_hooks[state] = cb;
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
#include "sandbox_state_transition.h"
|
||||||
|
|
||||||
|
void
|
||||||
|
sandbox_state_transition_hook_default(struct sandbox *sandbox)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Called while nonpreemptable */
|
||||||
|
sandbox_state_transition_hook_t sandbox_state_transition_to_hooks[SANDBOX_STATE_COUNT] = {
|
||||||
|
|
||||||
|
[SANDBOX_UNINITIALIZED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_ALLOCATED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_INITIALIZED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RUNNABLE] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_INTERRUPTED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_PREEMPTED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RUNNING_SYS] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RUNNING_USER] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_ASLEEP] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RETURNED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_COMPLETE] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_ERROR] = sandbox_state_transition_hook_default
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Called while nonpreemptable */
|
||||||
|
sandbox_state_transition_hook_t sandbox_state_transition_from_hooks[SANDBOX_STATE_COUNT] = {
|
||||||
|
|
||||||
|
[SANDBOX_UNINITIALIZED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_ALLOCATED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_INITIALIZED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RUNNABLE] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_INTERRUPTED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_PREEMPTED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RUNNING_SYS] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RUNNING_USER] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_ASLEEP] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_RETURNED] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_COMPLETE] = sandbox_state_transition_hook_default,
|
||||||
|
[SANDBOX_ERROR] = sandbox_state_transition_hook_default
|
||||||
|
};
|
Loading…
Reference in new issue