X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Ftest_sel_thread.c;h=11b65524e3c21bfbb14291abddd4186725779e00;hb=0ff1a97b2a69905755b9adb24a474d30f1c52150;hp=d68f15e1bad7d966fbf4a0bce3f2981387f4f91c;hpb=de79ce99355484d350009d4704c16ade68a76e98;p=pazpar2-moved-to-github.git diff --git a/src/test_sel_thread.c b/src/test_sel_thread.c index d68f15e..11b6552 100644 --- a/src/test_sel_thread.c +++ b/src/test_sel_thread.c @@ -1,4 +1,4 @@ -/* $Id: test_sel_thread.c,v 1.2 2007-04-20 11:44:58 adam Exp $ +/* $Id: test_sel_thread.c,v 1.5 2007-04-23 08:06:21 adam Exp $ Copyright (c) 2006-2007, Index Data. This file is part of Pazpar2. @@ -41,11 +41,18 @@ static void work_handler(void *vp) p->y = p->x * 2; } +/** \brief how work is destructed */ +static void work_destroy(void *vp) +{ + struct my_work_data *p = vp; + xfree(p); +} + /** \brief see if we can create and destroy without problems */ -static void test_1(void) +static void test_create_destroy(void) { int fd; - sel_thread_t p = sel_thread_create(work_handler, &fd); + sel_thread_t p = sel_thread_create(work_handler, 0, &fd, 1); YAZ_CHECK(p); if (!p) return; @@ -94,10 +101,11 @@ void iochan_handler(struct iochan *i, int event) } /** brief use the fd for something */ -static void test_2(void) +static void test_for_real_work(int no_threads) { int thread_fd; - sel_thread_t p = sel_thread_create(work_handler, &thread_fd); + sel_thread_t p = sel_thread_create(work_handler, work_destroy, + &thread_fd, no_threads); YAZ_CHECK(p); if (p) { @@ -107,8 +115,8 @@ static void test_2(void) iochan_setdata(chan, p); event_loop(&chan); + sel_thread_destroy(p); } - sel_thread_destroy(p); } int main(int argc, char **argv) @@ -116,8 +124,9 @@ int main(int argc, char **argv) YAZ_CHECK_INIT(argc, argv); YAZ_CHECK_LOG(); - test_1(); - test_2(); + test_create_destroy(); + test_for_real_work(1); + test_for_real_work(3); YAZ_CHECK_TERM; }