#include "apr.h"
#include "apr_file_io.h"

#if APR_HAVE_STDLIB_H
#include <stdlib.h> /* for atexit() */
#endif

#ifndef NL
#define NL APR_EOL_STR
#endif

apr_file_t *errfile = NULL;

static void pool_speed()
{
    int i,j,k;
    apr_pool_t *p;

    for (i = 0; i < 1000; i++) {
        apr_pool_create(&p, NULL);
        for (j = 0; j < 1000; j++) {
            for (k = 0; k < 10000; k += 8) {
                void *m = apr_palloc(p, k);
            }
            apr_pool_clear(p);
        }
        apr_pool_destroy(p);
    }
}

int main(int argc, const char *const argv[])
{
    apr_time_t start;
    apr_time_t end;
    apr_pool_t *pool;
    apr_app_initialize(&argc, &argv, NULL);
    atexit(apr_terminate);

    apr_pool_create(&pool, NULL);
    apr_file_open_stderr(&errfile, pool);

    apr_file_printf(errfile, "Pool Clear loop:"NL);
    start = apr_time_now();
    pool_speed();
    end = apr_time_now();

    apr_file_printf(errfile, "   Finished: %"APR_TIME_T_FMT""NL, end - start);
    
    return 0;
}
