Skip to content

Commit 2749a85

Browse files
committed
Merge branch 'master' of github.com:auxten/gko_pool
2 parents a626924 + c14817e commit 2749a85

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

src/async_conn.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -385,19 +385,29 @@ void gko_pool::conn_buffer_init(conn_client *client)
385385
thread_worker * worker = *(Pool->g_worker_list + client->worker_id);
386386

387387
client->err_no = INVILID;
388+
#if defined (USE_GKO_MEMORY_POOL)
388389
/// todo calloc every connection comes?
389390
client->r_buf_arena_id = worker->mem.get_block();
390391
client->w_buf_arena_id = worker->mem.get_block();
391392
assert(client->r_buf_arena_id >= 0);
392393
assert(client->w_buf_arena_id >= 0);
394+
#endif
393395

396+
#if defined (USE_GKO_MEMORY_POOL)
394397
client->read_buffer = (char *)worker->mem.id2addr(client->r_buf_arena_id);
398+
#else
399+
client->read_buffer = (char *)malloc(RBUF_SZ);
400+
#endif
395401
client->rbuf_size = RBUF_SZ;
396402
client->have_read = 0;
397403
client->need_read = CMD_PREFIX_BYTE;
398404

399405
/// todo calloc every connection comes?
406+
#if defined (USE_GKO_MEMORY_POOL)
400407
client->__write_buffer = (char *)worker->mem.id2addr(client->w_buf_arena_id);
408+
#else
409+
client->__write_buffer = (char *)malloc(WBUF_SZ);
410+
#endif
401411
client->write_buffer = client->__write_buffer + CMD_PREFIX_BYTE;
402412
client->wbuf_size = WBUF_SZ - CMD_PREFIX_BYTE;
403413
client->have_write = 0;
@@ -427,6 +437,7 @@ int gko_pool::conn_client_clear(struct conn_client *client)
427437
/// todo free every connection comes?
428438
if (client->read_buffer)
429439
{
440+
#if defined (USE_GKO_MEMORY_POOL)
430441
if(client->r_buf_arena_id >= 0)
431442
{
432443
worker->mem.free_block(client->r_buf_arena_id);
@@ -435,9 +446,13 @@ int gko_pool::conn_client_clear(struct conn_client *client)
435446
}
436447
else
437448
{
449+
#endif
450+
438451
free(client->read_buffer);
439452
client->read_buffer = NULL;
453+
#if defined (USE_GKO_MEMORY_POOL)
440454
}
455+
#endif
441456
}
442457
client->rbuf_size = RBUF_SZ;
443458
client->have_read = 0;
@@ -446,6 +461,7 @@ int gko_pool::conn_client_clear(struct conn_client *client)
446461
/// todo free every connection comes?
447462
if (client->__write_buffer)
448463
{
464+
#if defined (USE_GKO_MEMORY_POOL)
449465
if(client->w_buf_arena_id >= 0)
450466
{
451467
worker->mem.free_block(client->w_buf_arena_id);
@@ -454,9 +470,12 @@ int gko_pool::conn_client_clear(struct conn_client *client)
454470
}
455471
else
456472
{
473+
#endif
457474
free(client->__write_buffer);
458475
client->__write_buffer = NULL;
476+
#if defined (USE_GKO_MEMORY_POOL)
459477
}
478+
#endif
460479
}
461480
client->wbuf_size = WBUF_SZ - CMD_PREFIX_BYTE;
462481
client->have_write = 0;
@@ -495,6 +514,7 @@ int gko_pool::conn_renew(struct conn_client *client)
495514

496515
if (client->read_buffer)
497516
{
517+
#if defined (USE_GKO_MEMORY_POOL)
498518
if(client->r_buf_arena_id >= 0)
499519
{
500520
worker->mem.free_block(client->r_buf_arena_id);
@@ -503,13 +523,20 @@ int gko_pool::conn_renew(struct conn_client *client)
503523
}
504524
else
505525
{
526+
#endif
506527
free(client->read_buffer);
507528
client->read_buffer = NULL;
529+
#if defined (USE_GKO_MEMORY_POOL)
508530
}
531+
#endif
509532
}
510533

534+
#if defined (USE_GKO_MEMORY_POOL)
511535
client->r_buf_arena_id = worker->mem.get_block();
512536
client->read_buffer = (char *)worker->mem.id2addr(client->r_buf_arena_id);
537+
#else
538+
client->read_buffer = (char *)malloc(RBUF_SZ);
539+
#endif
513540

514541
client->rbuf_size = RBUF_SZ;
515542
client->have_read = 0;
@@ -518,6 +545,7 @@ int gko_pool::conn_renew(struct conn_client *client)
518545
/// todo free every connection comes?
519546
if (client->__write_buffer)
520547
{
548+
#if defined (USE_GKO_MEMORY_POOL)
521549
if(client->w_buf_arena_id >= 0)
522550
{
523551
worker->mem.free_block(client->w_buf_arena_id);
@@ -526,13 +554,20 @@ int gko_pool::conn_renew(struct conn_client *client)
526554
}
527555
else
528556
{
557+
#endif
529558
free(client->__write_buffer);
530559
client->__write_buffer = NULL;
560+
#if defined (USE_GKO_MEMORY_POOL)
531561
}
562+
#endif
532563
}
533564

565+
#if defined (USE_GKO_MEMORY_POOL)
534566
client->w_buf_arena_id = worker->mem.get_block();
535567
client->__write_buffer = (char *)worker->mem.id2addr(client->w_buf_arena_id);
568+
#else
569+
client->__write_buffer = (char *)malloc(WBUF_SZ);
570+
#endif
536571
client->write_buffer = client->__write_buffer + CMD_PREFIX_BYTE;
537572

538573
client->wbuf_size = WBUF_SZ - CMD_PREFIX_BYTE;

src/gingko.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
#ifndef GINGKO_H_
5252
#define GINGKO_H_
5353

54+
5455
#define USE_GKO_MEMORY_POOL
5556
#define NO_SO_CALLED_FNV_OPTIMIZE
5657
#define ROT_XOR_HASH

0 commit comments

Comments
 (0)