예제 #1
0
파일: demo.c 프로젝트: SerhoLiu/libakio
int main(int argc, char const *argv[])
{
    char err[SOCKET_ERR_LEN];

    pool = buffer_pool_create(100);
    prev_recv = prev_send = 0;
    recv_total = send_total = 0;

    int sfd = tcp_server_serve(err, "localhost", 3456, SOMAXCONN);
    if (sfd < 0) {
        printf("%d %s\n", sfd, err);
        return 0;
    }

    if (set_nonblock(err, sfd) != 0) {
        printf("%s\n", err);
        return 0;
    }

    if (set_tcp_nodelay(err, sfd, 1) != 0) {
        printf("%s\n", err);
        return 0;
    }

    event_loop_t *loop = event_loop_create(100, 10);
    assert(loop != NULL);

    create_timer(loop, 1000, print_info, NULL);
    create_event(loop, sfd, EV_RDABLE, server_accept_cb, NULL);

    event_loop_start(loop);
}
예제 #2
0
/**
 * Initialize the Baka malloc wrapper.
 *
 *	@param flags Flags for future use.
 *	@return <i>-1</i> on failure.<br>
 *	@return <i>0</i> on success.
 */
int
bk_malloc_wrap_init(bk_flags flags)
{
  if (!buffer_pool && !(buffer_pool = buffer_pool_create((dict_function)buffer_pool_oo_cmp, (dict_function)buffer_pool_ko_cmp, 0, &buffer_pool_args)))
  {
    goto error;
  }

  return(0);

 error:
  bk_malloc_wrap_destroy(0);

  return(-1);
}