]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add thread pool test file
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 25 Jan 2017 23:09:39 +0000 (17:09 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 25 Jan 2017 23:09:39 +0000 (17:09 -0600)
libs/libks/test/test_thread_pools.c [new file with mode: 0644]

diff --git a/libs/libks/test/test_thread_pools.c b/libs/libks/test/test_thread_pools.c
new file mode 100644 (file)
index 0000000..4e8b73d
--- /dev/null
@@ -0,0 +1,70 @@
+#include "ks.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "tap.h"
+
+typedef struct ks_dht_nodeid_s { uint8_t id[20]; } ks_dht_nodeid_t;
+
+struct x {
+       int i;
+       ks_pool_t *pool;
+};
+
+static void *test1_thread(ks_thread_t *thread, void *data)
+{
+       struct x *mydata = (struct x *) data;
+
+       ks_log(KS_LOG_DEBUG, "Thread %d\n", mydata->i);
+       ks_sleep(100000);
+       ks_pool_free(mydata->pool, mydata);
+       return NULL;
+}
+
+static int test1() 
+{
+       ks_pool_t *pool;
+       ks_thread_pool_t *tp = NULL;
+       int i = 0;
+
+       ks_pool_open(&pool);
+
+       ks_thread_pool_create(&tp, 2, 10, KS_THREAD_DEFAULT_STACK, KS_PRI_NORMAL, 5);
+       
+
+       for (i = 0; i < 500; i++) {
+               struct x *data = ks_pool_alloc(pool, sizeof(*data));
+               data->i = i;
+               data->pool = pool;
+               ks_thread_pool_add_job(tp, test1_thread, data);
+       }
+
+
+       while(ks_thread_pool_backlog(tp)) {
+               ks_sleep(100000);
+       }
+
+       ks_sleep(10000000);
+
+       ks_thread_pool_destroy(&tp);
+       ks_pool_close(&pool);
+
+       return 1;
+}
+
+int main(int argc, char **argv)
+{
+
+
+       ks_init();
+       ks_global_set_default_logger(7);
+
+       plan(1);
+
+       ok(test1());
+
+       ks_shutdown();
+
+       done_testing();
+}