task init callback support extra argument
parent
2ab381d5e3
commit
1b777792ab
3
HISTORY
3
HISTORY
|
|
@ -1,4 +1,7 @@
|
|||
|
||||
Version 1.75 2024-09-15
|
||||
* task init callback support extra argument
|
||||
|
||||
Version 1.74 2024-05-18
|
||||
* add functions: get_log_level and get_log_level_caption
|
||||
* adapt to FreeBSD 13
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ static int task_alloc_init(struct fast_task_info *task,
|
|||
|
||||
task->free_queue = queue;
|
||||
if (queue->init_callback != NULL) {
|
||||
return queue->init_callback(task);
|
||||
return queue->init_callback(task, queue->init_arg);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -62,7 +62,8 @@ int free_queue_init_ex2(struct fast_task_queue *queue, const char *name,
|
|||
const bool double_buffers, const int max_connections,
|
||||
const int alloc_task_once, const int min_buff_size,
|
||||
const int max_buff_size, const int padding_size,
|
||||
const int arg_size, TaskInitCallback init_callback)
|
||||
const int arg_size, TaskInitCallback init_callback,
|
||||
void *init_arg)
|
||||
{
|
||||
#define MAX_DATA_SIZE (256 * 1024 * 1024)
|
||||
int alloc_once;
|
||||
|
|
@ -127,6 +128,7 @@ int free_queue_init_ex2(struct fast_task_queue *queue, const char *name,
|
|||
queue->padding_size = aligned_padding_size;
|
||||
queue->arg_size = aligned_arg_size;
|
||||
queue->init_callback = init_callback;
|
||||
queue->init_arg = init_arg;
|
||||
queue->release_callback = NULL;
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ struct fast_task_info;
|
|||
typedef int (*ThreadLoopCallback) (struct nio_thread_data *pThreadData);
|
||||
typedef int (*TaskFinishCallback) (struct fast_task_info *task);
|
||||
typedef void (*TaskCleanUpCallback) (struct fast_task_info *task);
|
||||
typedef int (*TaskInitCallback)(struct fast_task_info *task);
|
||||
typedef int (*TaskInitCallback)(struct fast_task_info *task, void *arg);
|
||||
typedef void (*TaskReleaseCallback)(struct fast_task_info *task);
|
||||
|
||||
typedef void (*IOEventCallback) (int sock, short event, void *arg);
|
||||
|
|
@ -155,6 +155,7 @@ struct fast_task_queue
|
|||
bool double_buffers; //if send buffer and recv buffer are independent
|
||||
struct fast_mblock_man allocator;
|
||||
TaskInitCallback init_callback;
|
||||
void *init_arg;
|
||||
TaskReleaseCallback release_callback;
|
||||
};
|
||||
|
||||
|
|
@ -166,7 +167,8 @@ int free_queue_init_ex2(struct fast_task_queue *queue, const char *name,
|
|||
const bool double_buffers, const int max_connections,
|
||||
const int alloc_task_once, const int min_buff_size,
|
||||
const int max_buff_size, const int padding_size,
|
||||
const int arg_size, TaskInitCallback init_callback);
|
||||
const int arg_size, TaskInitCallback init_callback,
|
||||
void *init_arg);
|
||||
|
||||
static inline int free_queue_init_ex(struct fast_task_queue *queue,
|
||||
const char *name, const bool double_buffers,
|
||||
|
|
@ -177,7 +179,7 @@ static inline int free_queue_init_ex(struct fast_task_queue *queue,
|
|||
const int padding_size = 0;
|
||||
return free_queue_init_ex2(queue, name, double_buffers, max_connections,
|
||||
alloc_task_once, min_buff_size, max_buff_size, padding_size,
|
||||
arg_size, NULL);
|
||||
arg_size, NULL, NULL);
|
||||
}
|
||||
|
||||
static inline int free_queue_init(struct fast_task_queue *queue,
|
||||
|
|
|
|||
|
|
@ -1798,7 +1798,9 @@ struct ibv_pd *fc_alloc_rdma_pd(fc_alloc_pd_callback alloc_pd,
|
|||
}
|
||||
|
||||
end = address_array->addrs + address_array->count;
|
||||
for (addr=address_array->addrs, ip_addr=ip_addrs; addr<end; addr++) {
|
||||
for (addr=address_array->addrs, ip_addr=ip_addrs;
|
||||
addr<end; addr++, ip_addr++)
|
||||
{
|
||||
*ip_addr = (*addr)->conn.ip_addr;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue