Main Page | Modules | Data Structures | File List | Data Fields | Globals

src/server/request-scheduler/request-scheduler.c File Reference

An implementation of the server side request scheduler API. More...

#include <errno.h>
#include <stdlib.h>
#include <sys/time.h>
#include <assert.h>
#include "request-scheduler.h"
#include "quickhash.h"
#include "pvfs2-types.h"
#include "pvfs2-req-proto.h"
#include "pvfs2-debug.h"
#include "gossip.h"
#include "id-generator.h"
#include "pvfs2-internal.h"
#include "src/server/pvfs2-server.h"

Enumerations

enum  req_sched_states { REQ_QUEUED, REQ_SCHEDULED, REQ_READY_TO_SCHEDULE, REQ_TIMING }

Functions

enum PVFS_server_mode PINT_req_sched_get_mode (void)
int PINT_req_sched_initialize (void)
int PINT_req_sched_finalize (void)
int PINT_req_sched_post (enum PVFS_server_op op, PVFS_fs_id fs_id, PVFS_handle handle, enum PINT_server_req_access_type access_type, enum PINT_server_sched_policy sched_policy, void *in_user_ptr, req_sched_id *out_id)
int PINT_req_sched_post_timer (int msecs, void *in_user_ptr, req_sched_id *out_id)
int PINT_req_sched_unpost (req_sched_id in_id, void **returned_user_ptr)
int PINT_req_sched_release (req_sched_id in_completed_id, void *in_user_ptr, req_sched_id *out_id)
int PINT_req_sched_test (req_sched_id in_id, int *out_count_p, void **returned_user_ptr_p, req_sched_error_code *out_status)
int PINT_req_sched_testsome (req_sched_id *in_id_array, int *inout_count_p, int *out_index_array, void **returned_user_ptr_array, req_sched_error_code *out_status_array)
int PINT_req_sched_testworld (int *inout_count_p, req_sched_id *out_id_array, void **returned_user_ptr_array, req_sched_error_code *out_status_array)


Detailed Description

An implementation of the server side request scheduler API.

Note:
this is a prototype. It simply hashes on the handle value in the request and builds a linked list for each handle. Only the request at the head of each list is allowed to proceed.

Enumeration Type Documentation

enum req_sched_states
 

request states

Enumeration values:
REQ_QUEUED  request is queued up, cannot be processed yet
REQ_SCHEDULED  request is being processed
REQ_READY_TO_SCHEDULE  request could be processed, but caller has not asked for it yet
REQ_TIMING  for timer events


Generated on Tue Feb 7 02:43:58 2012 for PVFS by doxygen 1.3.5