chore: cleanup sandbox_request

main
Sean McBride 5 years ago
parent 75a34360b8
commit b0ae9ba266

@ -18,7 +18,25 @@ typedef struct sandbox_request sandbox_request_t;
DEQUE_PROTOTYPE(sandbox, sandbox_request_t *);
static inline int add_sandbox_request_to_global_dequeue(sandbox_request_t *sandbox_request);
/**
* Pushes a sandbox request to the global deque
* @param sandbox_request
**/
static inline int
sandbox_request__add_to_global_dequeue(sandbox_request_t *sandbox_request)
{
int return_code;
#if NCORES == 1
pthread_mutex_lock(&global_deque_mutex);
#endif
return_code = deque_push_sandbox(global_deque, &sandbox_request);
#if NCORES == 1
pthread_mutex_unlock(&global_deque_mutex);
#endif
return return_code;
}
/**
* Allocates a new Sandbox Request and places it on the Global Deque
@ -30,7 +48,7 @@ static inline int add_sandbox_request_to_global_dequeue(sandbox_request_t *sandb
* @return the new sandbox request
**/
static inline sandbox_request_t *
allocate_sandbox_request(struct module *module, char *arguments, int socket_descriptor, const struct sockaddr *socket_address, u64 start_time)
sandbox_request__allocate(struct module *module, char *arguments, int socket_descriptor, const struct sockaddr *socket_address, u64 start_time)
{
sandbox_request_t *sandbox_request = (sandbox_request_t *)malloc(sizeof(sandbox_request_t));
assert(sandbox_request);
@ -41,36 +59,16 @@ allocate_sandbox_request(struct module *module, char *arguments, int socket_desc
sandbox_request->start_time = start_time;
debuglog("[%p: %s]\n", sandbox_request, sandbox_request->module->name);
add_sandbox_request_to_global_dequeue(sandbox_request);
sandbox_request__add_to_global_dequeue(sandbox_request);
return sandbox_request;
}
/**
* Pushes a sandbox request to the global deque
* @param sandbox_request
**/
static inline int
add_sandbox_request_to_global_dequeue(sandbox_request_t *sandbox_request)
{
int return_code;
#if NCORES == 1
pthread_mutex_lock(&global_deque_mutex);
#endif
return_code = deque_push_sandbox(global_deque, &sandbox_request);
#if NCORES == 1
pthread_mutex_unlock(&global_deque_mutex);
#endif
return return_code;
}
/**
* Pops a sandbox request from the global deque
* @param sandbox_request the pointer which we want to set to the sandbox request
**/
static inline int
pop_sandbox_request_from_global_dequeue(sandbox_request_t **sandbox_request)
sandbox_request__pop_from_global_dequeue(sandbox_request_t **sandbox_request)
{
int return_code;
@ -84,18 +82,17 @@ pop_sandbox_request_from_global_dequeue(sandbox_request_t **sandbox_request)
return return_code;
}
/**
* TODO: What does this do?
* @returns A Sandbox Request or NULL
**/
static inline sandbox_request_t *
steal_sandbox_request_from_global_dequeue(void)
sandbox_request__steal_from_global_dequeue(void)
{
sandbox_request_t *sandbox_request = NULL;
#if NCORES == 1
pop_sandbox_request_from_global_dequeue(&sandbox_request);
sandbox_request__pop_from_global_dequeue(&sandbox_request);
#else
int r = deque_steal_sandbox(global_deque, &sandbox_request);
if (r) sandbox_request = NULL;

@ -94,7 +94,7 @@ listener_thread_main(void *dummy)
total_requests++;
printf("Received Request %d at %lu\n", total_requests, start_time);
sandbox_request_t *sandbox_request = allocate_sandbox_request(
sandbox_request_t *sandbox_request = sandbox_request__allocate(
module,
module->name,
socket_descriptor,
@ -102,7 +102,7 @@ listener_thread_main(void *dummy)
start_time);
assert(sandbox_request);
// TODO: Refactor allocate_sandbox_request to not add to global request queue and do this here
// TODO: Refactor sandbox_request__allocate to not add to global request queue and do this here
}
}
@ -265,7 +265,7 @@ pull_sandbox_requests_from_global_runqueue(void)
while (total_sandboxes_pulled < SBOX_PULL_MAX) {
sandbox_request_t *sandbox_request;
if ((sandbox_request = steal_sandbox_request_from_global_dequeue()) == NULL) break;
if ((sandbox_request = sandbox_request__steal_from_global_dequeue()) == NULL) break;
// Actually allocate the sandbox for the requests that we've pulled
struct sandbox *sandbox = sandbox__allocate(sandbox_request->module, sandbox_request->arguments,
sandbox_request->socket_descriptor, sandbox_request->socket_address,

Loading…
Cancel
Save