#include "XrdFfs/XrdFfsQueue.hh"
Go to the source code of this file.
Functions | |
void | XrdFfsQueue_enqueue (struct XrdFfsQueueTasks *task) |
XrdFfsQueueTasks * | XrdFfsQueue_dequeue () |
XrdFfsQueueTasks * | XrdFfsQueue_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 | |
XrdFfsQueueTasks * | XrdFfsQueueTaskque_head = NULL |
XrdFfsQueueTasks * | XrdFfsQueueTaskque_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 |
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().
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.
Definition at line 160 of file XrdFfsQueue.cc.