claws-mail/src/etpan/etpan-thread-manager-types.h
2005-07-03 15:09:13 +00:00

53 lines
968 B
C

#ifndef ETPAN_THREAD_MANAGER_TYPES_H
#define ETPAN_THREAD_MANAGER_TYPES_H
#include <libetpan/libetpan.h>
struct etpan_thread_manager {
/* thread pool */
carray * thread_pool;
carray * thread_pending;
int can_create_thread;
int unbound_count;
int notify_fds[2];
};
struct etpan_thread {
struct etpan_thread_manager * manager;
pthread_t th_id;
pthread_mutex_t lock;
carray * op_list;
carray * op_done_list;
int bound_count;
int terminate_state;
struct mailsem * start_sem;
struct mailsem * stop_sem;
struct mailsem * op_sem;
};
struct etpan_thread_op {
struct etpan_thread * thread;
void (* run)(struct etpan_thread_op * op);
void (* callback)(int cancelled, void * result, void * callback_data);
void * callback_data;
void (* cleanup)(struct etpan_thread_op * op);
pthread_mutex_t lock;
int callback_called;
int cancellable;
int cancelled;
void * param;
void * result;
};
#endif