fix: Support many simultaneous connections (#886)

This commit is contained in:
Sukchan Lee 2021-03-31 17:29:20 +09:00
parent cc30aa2a9a
commit 68724c6ec1
6 changed files with 12 additions and 12 deletions

View File

@ -92,7 +92,7 @@ static void recalculate_pool_size(void)
self.pool.sbi_message = self.pool.nf * MAX_NUM_OF_SBI_MESSAGE;
self.pool.nf_subscription = self.pool.nf * MAX_NUM_OF_NF_SUBSCRIPTION;
#define MAX_EVENT_POOL 32
#define MAX_EVENT_POOL 256
self.pool.event = MAX_EVENT_POOL;
#define MAX_CSMAP_POOL 128

View File

@ -42,8 +42,8 @@ void ogs_sbi_context_init(void)
ogs_sbi_message_init(
ogs_app()->pool.sbi_message, ogs_app()->pool.sbi_message);
ogs_sbi_server_init(ogs_app()->pool.nf);
ogs_sbi_client_init(ogs_app()->pool.nf, ogs_app()->pool.nf);
ogs_sbi_server_init(ogs_app()->pool.nf, ogs_app()->pool.event);
ogs_sbi_client_init(ogs_app()->pool.nf, ogs_app()->pool.event);
ogs_list_init(&self.nf_instance_list);
ogs_pool_init(&nf_instance_pool, ogs_app()->pool.nf);

View File

@ -28,7 +28,7 @@ typedef enum MHD_Result _MHD_Result;
typedef int _MHD_Result;
#endif
static void server_init(int num_of_session_pool);
static void server_init(int num_of_session_pool, int num_of_stream_pool);
static void server_final(void);
static void server_start(ogs_sbi_server_t *server,
@ -103,7 +103,7 @@ typedef struct ogs_sbi_session_s {
static OGS_POOL(session_pool, ogs_sbi_session_t);
static void server_init(int num_of_session_pool)
static void server_init(int num_of_session_pool, int num_of_stream_pool)
{
ogs_pool_init(&session_pool, num_of_session_pool);
}

View File

@ -26,7 +26,7 @@
#define USE_SEND_DATA_WITH_NO_COPY 1
static void server_init(int num_of_stream_pool);
static void server_init(int num_of_session_pool, int num_of_stream_pool);
static void server_final(void);
static void server_start(ogs_sbi_server_t *server,
@ -100,9 +100,9 @@ static void session_write_to_buffer(
static OGS_POOL(session_pool, ogs_sbi_session_t);
static OGS_POOL(stream_pool, ogs_sbi_stream_t);
static void server_init(int num_of_stream_pool)
static void server_init(int num_of_session_pool, int num_of_stream_pool)
{
ogs_pool_init(&session_pool, num_of_stream_pool);
ogs_pool_init(&session_pool, num_of_session_pool);
ogs_pool_init(&stream_pool, num_of_stream_pool);
}

View File

@ -28,7 +28,7 @@ bool ogs_sbi_server_actions_initialized = false;
static OGS_POOL(server_pool, ogs_sbi_server_t);
void ogs_sbi_server_init(int num_of_stream_pool)
void ogs_sbi_server_init(int num_of_session_pool, int num_of_stream_pool)
{
if (ogs_sbi_server_actions_initialized == false) {
#if 1 /* Use HTTP2 */
@ -38,7 +38,7 @@ void ogs_sbi_server_init(int num_of_stream_pool)
#endif
}
ogs_sbi_server_actions.init(num_of_stream_pool);
ogs_sbi_server_actions.init(num_of_session_pool, num_of_stream_pool);
ogs_list_init(&ogs_sbi_self()->server_list);
ogs_pool_init(&server_pool, ogs_app()->pool.nf);

View File

@ -46,7 +46,7 @@ typedef struct ogs_sbi_server_s {
} ogs_sbi_server_t;
typedef struct ogs_sbi_server_actions_s {
void (*init)(int num_of_stream_pool);
void (*init)(int num_of_session_pool, int num_of_stream_pool);
void (*cleanup)(void);
void (*start)(ogs_sbi_server_t *server,
@ -59,7 +59,7 @@ typedef struct ogs_sbi_server_actions_s {
ogs_sbi_server_t *(*from_stream)(ogs_sbi_stream_t *stream);
} ogs_sbi_server_actions_t;
void ogs_sbi_server_init(int num_of_connection_pool);
void ogs_sbi_server_init(int num_of_session_pool, int num_of_stream_pool);
void ogs_sbi_server_final(void);
ogs_sbi_server_t *ogs_sbi_server_add(ogs_sockaddr_t *addr);