diff --git a/src/idempotency/client/receipt_handler.c b/src/idempotency/client/receipt_handler.c index ecaf850..4ab44cb 100644 --- a/src/idempotency/client/receipt_handler.c +++ b/src/idempotency/client/receipt_handler.c @@ -495,7 +495,7 @@ static int do_init() receipt_alloc_thread_extra_data, receipt_thread_loop_callback, NULL, sf_proto_set_body_length, NULL, NULL, receipt_deal_task, receipt_task_finish_cleanup, receipt_recv_timeout_callback, - 1000, sizeof(SFCommonProtoHeader), 0, receipt_init_task, NULL); + 1000, sizeof(SFCommonProtoHeader), 0, 0, receipt_init_task, NULL); } int receipt_handler_init() diff --git a/src/sf_service.c b/src/sf_service.c index ec48d01..9f0e5f6 100644 --- a/src/sf_service.c +++ b/src/sf_service.c @@ -66,8 +66,8 @@ int sf_init_task(struct fast_task_info *task) static void *worker_thread_entrance(void *arg); -static int sf_init_free_queues(const int task_arg_size, - TaskInitCallback init_callback) +static int sf_init_free_queues(const int task_padding_size, + const int task_arg_size, TaskInitCallback init_callback) { #define ALLOC_CONNECTIONS_ONCE 1024 @@ -100,7 +100,7 @@ static int sf_init_free_queues(const int task_arg_size, if ((result=free_queue_init_ex2(g_sf_global_vars.max_connections, init_connections, alloc_conn_once, g_sf_global_vars. min_buff_size, g_sf_global_vars.max_buff_size, - task_arg_size, init_callback != NULL ? + task_padding_size, task_arg_size, init_callback != NULL ? init_callback : sf_init_task)) != 0) { return result; @@ -119,9 +119,9 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name, sf_send_done_callback send_done_callback, sf_deal_task_func deal_func, TaskCleanUpCallback task_cleanup_func, sf_recv_timeout_callback timeout_callback, const int net_timeout_ms, - const int proto_header_size, const int task_arg_size, - TaskInitCallback init_callback, sf_release_buffer_callback - release_buffer_callback) + const int proto_header_size, const int task_padding_size, + const int task_arg_size, TaskInitCallback init_callback, + sf_release_buffer_callback release_buffer_callback) { int result; int bytes; @@ -142,7 +142,9 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name, send_done_callback, deal_func, task_cleanup_func, timeout_callback, release_buffer_callback); - if ((result=sf_init_free_queues(task_arg_size, init_callback)) != 0) { + if ((result=sf_init_free_queues(task_padding_size, + task_arg_size, init_callback)) != 0) + { return result; } diff --git a/src/sf_service.h b/src/sf_service.h index 64d573c..e5d7134 100644 --- a/src/sf_service.h +++ b/src/sf_service.h @@ -43,9 +43,9 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name, sf_send_done_callback send_done_callback, sf_deal_task_func deal_func, TaskCleanUpCallback task_cleanup_func, sf_recv_timeout_callback timeout_callback, const int net_timeout_ms, - const int proto_header_size, const int task_arg_size, - TaskInitCallback init_callback, sf_release_buffer_callback - release_buffer_callback); + const int proto_header_size, const int task_padding_size, + const int task_arg_size, TaskInitCallback init_callback, + sf_release_buffer_callback release_buffer_callback); #define sf_service_init_ex(sf_context, name, alloc_thread_extra_data_callback,\ thread_loop_callback, accept_done_callback, set_body_length_func, \ @@ -55,7 +55,7 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name, thread_loop_callback, accept_done_callback, set_body_length_func, \ NULL, send_done_callback, deal_func, task_cleanup_func, \ timeout_callback, net_timeout_ms, proto_header_size, \ - task_arg_size, NULL, NULL) + 0, task_arg_size, NULL, NULL) #define sf_service_init(name, alloc_thread_extra_data_callback, \ thread_loop_callback, accept_done_callback, set_body_length_func, \ @@ -64,7 +64,7 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name, sf_service_init_ex2(&g_sf_context, name, alloc_thread_extra_data_callback, \ thread_loop_callback, accept_done_callback, set_body_length_func, NULL, \ send_done_callback, deal_func, task_cleanup_func, timeout_callback, \ - net_timeout_ms, proto_header_size, task_arg_size, NULL, NULL) + net_timeout_ms, proto_header_size, 0, task_arg_size, NULL, NULL) int sf_service_destroy_ex(SFContext *sf_context); diff --git a/src/sf_types.h b/src/sf_types.h index 4791e4f..1fd0159 100644 --- a/src/sf_types.h +++ b/src/sf_types.h @@ -88,10 +88,12 @@ typedef struct sf_listener { } SFListener; struct sf_context; +struct ibv_pd; typedef struct sf_network_handler { bool enabled; FCNetworkType type; struct sf_context *ctx; + struct ibv_pd *pd; SFListener inner; SFListener outer;