XrdFfsQueue.cc File Reference

#include "XrdFfs/XrdFfsQueue.hh"

Go to the source code of this file.

Functions

void XrdFfsQueue_enqueue (struct XrdFfsQueueTasks *task)
XrdFfsQueueTasksXrdFfsQueue_dequeue ()
XrdFfsQueueTasksXrdFfsQueue_create_task (void *(*func)(void *), void **args, short initstat)
void XrdFfsQueue_free_task (struct XrdFfsQueueTasks *task)
void XrdFfsQueue_wait_task (struct XrdFfsQueueTasks *task)
unsigned int XrdFfsQueue_count_tasks ()
void * XrdFfsQueue_worker (void *x)
int XrdFfsQueue_create_workers (int n)
int XrdFfsQueue_remove_workers (int n)
int XrdFfsQueue_count_workers ()

Variables

XrdFfsQueueTasksXrdFfsQueueTaskque_head = NULL
XrdFfsQueueTasksXrdFfsQueueTaskque_tail = NULL
unsigned int XrdFfsQueueNext_task_id = 0
pthread_mutex_t XrdFfsQueueTaskque_mutex = PTHREAD_MUTEX_INITIALIZER
pthread_cond_t XrdFfsQueueTaskque_cond = PTHREAD_COND_INITIALIZER
pthread_mutex_t XrdFfsQueueWorker_mutex
unsigned short XrdFfsQueueNworkers = 0
unsigned int XrdFfsQueueWorker_id = 0


Function Documentation

unsigned int XrdFfsQueue_count_tasks (  ) 

Definition at line 110 of file XrdFfsQueue.cc.

References XrdFfsQueueTasks::id, int, NULL, pthread_mutex_lock(), pthread_mutex_unlock(), XrdFfsQueueTaskque_head, and XrdFfsQueueTaskque_tail.

int XrdFfsQueue_count_workers (  ) 

Definition at line 226 of file XrdFfsQueue.cc.

References i, pthread_mutex_lock(), and pthread_mutex_unlock().

Referenced by XrdFfsMisc_xrd_init().

struct XrdFfsQueueTasks* XrdFfsQueue_create_task ( void *(*)(void *)  func,
void **  args,
short  initstat 
)

Definition at line 76 of file XrdFfsQueue.cc.

References XrdFfsQueueTasks::args, XrdFfsQueueTasks::cond, XrdFfsQueueTasks::done, XrdFfsQueueTasks::func, malloc(), XrdFfsQueueTasks::mutex, NULL, pthread_cond_init(), pthread_mutex_init(), and XrdFfsQueue_enqueue().

Referenced by XrdFfsPosix_deleteall(), XrdFfsPosix_readdirall(), XrdFfsPosix_statall(), XrdFfsPosix_statvfsall(), and XrdFfsQueue_remove_workers().

int XrdFfsQueue_create_workers ( int  n  ) 

Definition at line 164 of file XrdFfsQueue.cc.

References free(), i, id, malloc(), NULL, pthread_attr_destroy(), pthread_attr_init(), pthread_attr_setdetachstate(), pthread_attr_setstacksize(), pthread_create(), PTHREAD_CREATE_DETACHED, pthread_detach(), pthread_mutex_lock(), pthread_mutex_unlock(), size_t, and XrdFfsQueue_worker().

Referenced by XrdPssSys::Configure(), and XrdFfsMisc_xrd_init().

struct XrdFfsQueueTasks* XrdFfsQueue_dequeue (  ) 

Definition at line 49 of file XrdFfsQueue.cc.

References XrdFfsQueueTasks::next, NULL, XrdFfsQueueTasks::prev, pthread_cond_wait(), pthread_mutex_lock(), pthread_mutex_unlock(), XrdFfsQueueTaskque_cond, XrdFfsQueueTaskque_head, and XrdFfsQueueTaskque_tail.

Referenced by XrdFfsQueue_worker().

void XrdFfsQueue_enqueue ( struct XrdFfsQueueTasks task  ) 

Definition at line 24 of file XrdFfsQueue.cc.

References XrdFfsQueueTasks::id, XrdFfsQueueTasks::next, NULL, XrdFfsQueueTasks::prev, pthread_cond_broadcast(), pthread_mutex_lock(), pthread_mutex_unlock(), XrdFfsQueueTaskque_cond, XrdFfsQueueTaskque_head, and XrdFfsQueueTaskque_tail.

Referenced by XrdFfsQueue_create_task().

void XrdFfsQueue_free_task ( struct XrdFfsQueueTasks task  ) 

Definition at line 90 of file XrdFfsQueue.cc.

References XrdFfsQueueTasks::args, XrdFfsQueueTasks::cond, free(), XrdFfsQueueTasks::func, XrdFfsQueueTasks::mutex, XrdFfsQueueTasks::next, NULL, XrdFfsQueueTasks::prev, pthread_cond_destroy(), and pthread_mutex_destroy().

Referenced by XrdFfsQueue_remove_workers().

int XrdFfsQueue_remove_workers ( int  n  ) 

Definition at line 201 of file XrdFfsQueue.cc.

References i, NULL, pthread_mutex_lock(), pthread_mutex_unlock(), XrdFfsQueue_create_task(), XrdFfsQueue_free_task(), and XrdFfsQueue_wait_task().

void XrdFfsQueue_wait_task ( struct XrdFfsQueueTasks task  ) 

Definition at line 102 of file XrdFfsQueue.cc.

References XrdFfsQueueTasks::cond, XrdFfsQueueTasks::done, XrdFfsQueueTasks::mutex, pthread_cond_wait(), pthread_mutex_lock(), and pthread_mutex_unlock().

Referenced by XrdFfsQueue_remove_workers().

void* XrdFfsQueue_worker ( void *  x  ) 

Definition at line 126 of file XrdFfsQueue.cc.

References XrdFfsQueueTasks::args, XrdFfsQueueTasks::cond, XrdFfsQueueTasks::done, free(), XrdFfsQueueTasks::func, XrdFfsQueueTasks::id, XrdFfsQueueTasks::mutex, NULL, pthread_cond_signal(), pthread_mutex_lock(), pthread_mutex_unlock(), and XrdFfsQueue_dequeue().

Referenced by XrdFfsQueue_create_workers().


Variable Documentation

unsigned int XrdFfsQueueNext_task_id = 0

Definition at line 20 of file XrdFfsQueue.cc.

unsigned short XrdFfsQueueNworkers = 0

Definition at line 161 of file XrdFfsQueue.cc.

pthread_cond_t XrdFfsQueueTaskque_cond = PTHREAD_COND_INITIALIZER

Definition at line 22 of file XrdFfsQueue.cc.

Referenced by XrdFfsQueue_dequeue(), and XrdFfsQueue_enqueue().

struct XrdFfsQueueTasks* XrdFfsQueueTaskque_head = NULL

Definition at line 18 of file XrdFfsQueue.cc.

Referenced by XrdFfsQueue_count_tasks(), XrdFfsQueue_dequeue(), and XrdFfsQueue_enqueue().

pthread_mutex_t XrdFfsQueueTaskque_mutex = PTHREAD_MUTEX_INITIALIZER

Definition at line 21 of file XrdFfsQueue.cc.

struct XrdFfsQueueTasks* XrdFfsQueueTaskque_tail = NULL

Definition at line 19 of file XrdFfsQueue.cc.

Referenced by XrdFfsQueue_count_tasks(), XrdFfsQueue_dequeue(), and XrdFfsQueue_enqueue().

unsigned int XrdFfsQueueWorker_id = 0

Definition at line 162 of file XrdFfsQueue.cc.

pthread_mutex_t XrdFfsQueueWorker_mutex

Definition at line 160 of file XrdFfsQueue.cc.


Generated on Tue Jul 5 16:08:06 2011 for ROOT_528-00b_version by  doxygen 1.5.1