pazpar2
1.14.1
|
#include <yaz/yconfig.h>
Go to the source code of this file.
Typedefs | |
typedef struct sel_thread * | sel_thread_t |
select thread handler type More... | |
Functions | |
sel_thread_t | sel_thread_create (void(*work_handler)(void *work_data), void(*work_destroy)(void *work_data), int *read_fd, int no_of_threads) |
creates select thread More... | |
void | sel_thread_destroy (sel_thread_t p) |
destorys select thread More... | |
void | sel_thread_add (sel_thread_t p, void *data) |
adds work to be carried out in thread More... | |
void * | sel_thread_result (sel_thread_t p) |
gets result of work More... | |
typedef struct sel_thread* sel_thread_t |
select thread handler type
Definition at line 27 of file sel_thread.h.
void sel_thread_add | ( | sel_thread_t | p, |
void * | data | ||
) |
adds work to be carried out in thread
p | select thread handler |
data | pointer to data that work_handler knows about |
Definition at line 205 of file sel_thread.c.
References work_item::data, sel_thread::free_queue, sel_thread::input_data, sel_thread::input_queue, input_queue_length, sel_thread::mutex, work_item::next, and sel_thread::nmem.
Referenced by iochan_handler(), and run_fun().
sel_thread_t sel_thread_create | ( | void(*)(void *work_data) | work_handler, |
void(*)(void *work_data) | work_destroy, | ||
int * | read_fd, | ||
int | no_of_threads | ||
) |
creates select thread
work_handler | handler that does work in worker thread |
work_destroy | optional destroy handler for work (0 = no handler) |
read_fd | pointer to readable socket upon completion |
no_of_threads | number of worker threads |
Creates a worker thread. The worker thread will signal "completed" work by sending one byte to the read_fd file descriptor. You are supposed to select or poll on that for reading and call sel_thread_result accordingly.
Definition at line 129 of file sel_thread.c.
References sel_thread::free_queue, sel_thread::input_data, sel_thread::input_queue, sel_thread::mutex, sel_thread::nmem, sel_thread::no_threads, sel_thread::output_queue, sel_thread::read_fd, sel_thread_destroy(), sel_thread_handler(), sel_thread::spipe, sel_thread::stop_flag, sel_thread::thread_id, work_destroy(), sel_thread::work_destroy, work_handler(), sel_thread::work_handler, and sel_thread::write_fd.
Referenced by iochan_man_events(), test_create_destroy(), and test_for_real_work().
void sel_thread_destroy | ( | sel_thread_t | p | ) |
destorys select thread
p | select thread handler |
Definition at line 182 of file sel_thread.c.
References sel_thread::input_data, sel_thread::input_queue, sel_thread::mutex, sel_thread::nmem, sel_thread::no_threads, sel_thread::output_queue, queue_trav(), sel_thread::spipe, sel_thread::stop_flag, sel_thread::thread_id, and sel_thread::work_destroy.
Referenced by iochan_man_destroy(), sel_thread_create(), test_create_destroy(), and test_for_real_work().
void* sel_thread_result | ( | sel_thread_t | p | ) |
gets result of work
p | select thread handler |
Definition at line 230 of file sel_thread.c.
References work_item::data, sel_thread::free_queue, sel_thread::mutex, work_item::next, sel_thread::output_queue, queue_remove_last(), and sel_thread::read_fd.
Referenced by event_loop(), and iochan_handler().