MicrofeedThread
[libmicrofeed-common - Common modules used both in the publisher and in the subscriber side]

A thread and a mutex. More...

Data Structures

struct  MicrofeedThreadFunctions

Typedefs

typedef struct _MicrofeedThread MicrofeedThread
 Opaque data type representing thread.
typedef struct _MicrofeedThreadPool MicrofeedThreadPool
typedef struct _MicrofeedMutex MicrofeedMutex
 Opaque data type representing mutex.
typedef void *(* MicrofeedThreadFunction )(void *data)
typedef void(* MicrofeedThreadExitCallback )(MicrofeedThread *thread, void *user_data)

Functions

void microfeed_thread_set_functions (MicrofeedThreadFunctions *thread_functions)
 Sets the functions that implements the thread and mutex operations.
void microfeed_thread_init (void)
void microfeed_thread_cleanup (void)
MicrofeedThreadmicrofeed_thread_new (MicrofeedThreadFunction function, void *data)
MicrofeedThreadmicrofeed_thread_new_with_exit_callback (MicrofeedThreadFunction function, void *data, MicrofeedThreadExitCallback exit_callback, void *user_data)
void microfeed_thread_free (MicrofeedThread *thread)
MicrofeedThreadmicrofeed_thread_ref (MicrofeedThread *thread)
void microfeed_thread_unref (MicrofeedThread *thread)
MicrofeedThreadmicrofeed_thread_get_current (void)
void microfeed_thread_send_signal (MicrofeedThread *thread, int signal_number)
void microfeed_thread_join (MicrofeedThread *thread)
unsigned long microfeed_thread_get_id (MicrofeedThread *thread)
MicrofeedThreadPoolmicrofeed_thread_pool_new (unsigned int maximum_thread_count)
MicrofeedThreadPoolmicrofeed_thread_pool_new_with_exit_callback (unsigned int max_threads, MicrofeedThreadExitCallback exit_callback, void *user_data)
 
MicrofeedThreadmicrofeed_thread_pool_queue_thread (MicrofeedThreadPool *thread_pool, MicrofeedThreadFunction function, void *data)
MicrofeedThreadmicrofeed_thread_pool_queue_thread_with_exit_callback (MicrofeedThreadPool *thread_pool, MicrofeedThreadFunction function, void *data, MicrofeedThreadExitCallback exit_callback, void *user_data)
unsigned int microfeed_thread_pool_get_started_thread_count (MicrofeedThreadPool *thread_pool)
unsigned int microfeed_thread_pool_get_waiting_thread_count (MicrofeedThreadPool *thread_pool)
void microfeed_thread_pool_set_maximum_thread_count (MicrofeedThreadPool *thread_pool, unsigned int maximum_thread_count)
MicrofeedMutexmicrofeed_mutex_new (void)
void microfeed_mutex_free (MicrofeedMutex *mutex)
void microfeed_mutex_lock (MicrofeedMutex *mutex)
void microfeed_mutex_unlock (MicrofeedMutex *mutex)

Detailed Description

A thread and a mutex.

This module can be also utilized outside of the library implementation. In addition, if the default implementation of thread and mutex is not sufficient, you can change the functions with microfeed_thread_set_functions.


Typedef Documentation

Opaque data type representing mutex.

Definition at line 29 of file microfeedthread.h.

Opaque data type representing thread.

Definition at line 22 of file microfeedthread.h.

typedef void(* MicrofeedThreadExitCallback)(MicrofeedThread *thread, void *user_data)

Definition at line 33 of file microfeedthread.h.

typedef void*(* MicrofeedThreadFunction)(void *data)

Definition at line 31 of file microfeedthread.h.

Definition at line 24 of file microfeedthread.h.


Function Documentation

void microfeed_mutex_free ( MicrofeedMutex mutex  ) 

void microfeed_mutex_lock ( MicrofeedMutex mutex  ) 

Definition at line 340 of file microfeedthread.c.

References _MicrofeedMutex::mutex_implementation, and MicrofeedThreadFunctions::mutex_lock.

Referenced by microfeed_database_environment_get_database(), microfeed_database_environment_ref(), microfeed_database_environment_unref(), microfeed_database_free(), microfeed_database_get_data(), microfeed_database_get_data_partial(), microfeed_database_get_index(), microfeed_database_index_get_data(), microfeed_database_index_iterate(), microfeed_database_iterate(), microfeed_database_iterator_free(), microfeed_database_iterator_get(), microfeed_database_iterator_next(), microfeed_database_ref(), microfeed_database_unref(), microfeed_feed_add_subscriber(), microfeed_feed_call_modify_item_callback(), microfeed_feed_get_item(), microfeed_feed_get_subscriber_count(), microfeed_feed_get_weak_reference(), microfeed_feed_iterate(), microfeed_feed_iterate_timeline(), microfeed_feed_iterator_get_item(), microfeed_feed_iterator_jump_and_remove_previous_items(), microfeed_feed_ref(), microfeed_feed_ref_item_data(), microfeed_feed_remove_item(), microfeed_feed_remove_items(), microfeed_feed_remove_subscriber(), microfeed_feed_replace_item(), microfeed_feed_send_item_data(), microfeed_feed_set_item_status(), microfeed_feed_stop_update(), microfeed_feed_unref(), microfeed_feed_unref_item_data(), microfeed_feed_unset_item_status(), microfeed_feed_unset_item_statuses(), microfeed_feed_update(), microfeed_main_add_timeout(), microfeed_main_add_watch(), microfeed_main_exit(), microfeed_main_loop(), microfeed_main_remove_timeout(), microfeed_main_remove_watch(), microfeed_thread_cleanup(), microfeed_thread_free(), microfeed_thread_get_current(), microfeed_thread_new_with_exit_callback(), microfeed_thread_pool_queue_thread_with_exit_callback(), microfeed_thread_ref(), and microfeed_thread_unref().

MicrofeedMutex* microfeed_mutex_new ( void   ) 

void microfeed_mutex_unlock ( MicrofeedMutex mutex  ) 

Definition at line 344 of file microfeedthread.c.

References _MicrofeedMutex::mutex_implementation, and MicrofeedThreadFunctions::mutex_unlock.

Referenced by microfeed_database_environment_get_database(), microfeed_database_environment_ref(), microfeed_database_environment_unref(), microfeed_database_free(), microfeed_database_get_data(), microfeed_database_get_data_partial(), microfeed_database_get_index(), microfeed_database_index_get_data(), microfeed_database_index_iterate(), microfeed_database_iterate(), microfeed_database_iterator_free(), microfeed_database_iterator_get(), microfeed_database_iterator_next(), microfeed_database_ref(), microfeed_database_unref(), microfeed_feed_add_subscriber(), microfeed_feed_call_modify_item_callback(), microfeed_feed_get_item(), microfeed_feed_get_subscriber_count(), microfeed_feed_get_weak_reference(), microfeed_feed_iterate(), microfeed_feed_iterate_timeline(), microfeed_feed_iterator_get_item(), microfeed_feed_iterator_jump_and_remove_previous_items(), microfeed_feed_ref(), microfeed_feed_ref_item_data(), microfeed_feed_remove_item(), microfeed_feed_remove_items(), microfeed_feed_remove_subscriber(), microfeed_feed_replace_item(), microfeed_feed_send_item_data(), microfeed_feed_set_item_status(), microfeed_feed_stop_update(), microfeed_feed_unref(), microfeed_feed_unref_item_data(), microfeed_feed_unset_item_status(), microfeed_feed_unset_item_statuses(), microfeed_feed_update(), microfeed_main_add_timeout(), microfeed_main_add_watch(), microfeed_main_exit(), microfeed_main_loop(), microfeed_main_remove_timeout(), microfeed_main_remove_watch(), microfeed_thread_cleanup(), microfeed_thread_free(), microfeed_thread_get_current(), microfeed_thread_new_with_exit_callback(), microfeed_thread_pool_queue_thread_with_exit_callback(), microfeed_thread_ref(), and microfeed_thread_unref().

void microfeed_thread_cleanup ( void   ) 

void microfeed_thread_free ( MicrofeedThread thread  ) 

MicrofeedThread* microfeed_thread_get_current ( void   ) 

unsigned long microfeed_thread_get_id ( MicrofeedThread thread  ) 

Definition at line 234 of file microfeedthread.c.

References _MicrofeedThread::id.

void microfeed_thread_init ( void   ) 

Definition at line 75 of file microfeedthread.c.

References microfeed_mutex_new(), and microfeed_thread_get_current().

void microfeed_thread_join ( MicrofeedThread thread  ) 

MicrofeedThread* microfeed_thread_new ( MicrofeedThreadFunction  function,
void *  data 
)

MicrofeedThread* microfeed_thread_new_with_exit_callback ( MicrofeedThreadFunction  function,
void *  data,
MicrofeedThreadExitCallback  exit_callback,
void *  user_data 
)

unsigned int microfeed_thread_pool_get_started_thread_count ( MicrofeedThreadPool thread_pool  ) 

unsigned int microfeed_thread_pool_get_waiting_thread_count ( MicrofeedThreadPool thread_pool  ) 

MicrofeedThreadPool* microfeed_thread_pool_new ( unsigned int  maximum_thread_count  ) 

Definition at line 240 of file microfeedthread.c.

References microfeed_thread_pool_new_with_exit_callback().

MicrofeedThreadPool* microfeed_thread_pool_new_with_exit_callback ( unsigned int  maximum_thread_count,
MicrofeedThreadExitCallback  exit_callback,
void *  user_data 
)

MicrofeedThread* microfeed_thread_pool_queue_thread ( MicrofeedThreadPool thread_pool,
MicrofeedThreadFunction  function,
void *  data 
)

MicrofeedThread* microfeed_thread_pool_queue_thread_with_exit_callback ( MicrofeedThreadPool thread_pool,
MicrofeedThreadFunction  function,
void *  data,
MicrofeedThreadExitCallback  exit_callback,
void *  user_data 
)

void microfeed_thread_pool_set_maximum_thread_count ( MicrofeedThreadPool thread_pool,
unsigned int  maximum_thread_count 
)

Definition at line 321 of file microfeedthread.c.

References _MicrofeedThreadPool::max_threads.

MicrofeedThread* microfeed_thread_ref ( MicrofeedThread thread  ) 

void microfeed_thread_send_signal ( MicrofeedThread thread,
int  signal_number 
)

void microfeed_thread_set_functions ( MicrofeedThreadFunctions thread_functions  ) 

Sets the functions that implements the thread and mutex operations.

Parameters:
thread_functions A structure containing new implementions.

Definition at line 71 of file microfeedthread.c.

void microfeed_thread_unref ( MicrofeedThread thread  ) 


Generated on Fri Jun 26 21:48:57 2009 for Microfeed by  doxygen 1.5.6