X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Ftest_sel_thread.c;h=11b65524e3c21bfbb14291abddd4186725779e00;hb=197410f262777b4955b23be723afe80d5f63cf77;hp=5f983903f01565b3da72b9f9c112841d2956bb4b;hpb=04178a3a27646374199bb2a22389451cb144f0a2;p=pazpar2-moved-to-github.git diff --git a/src/test_sel_thread.c b/src/test_sel_thread.c index 5f98390..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.4 2007-04-23 07:29:34 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_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_for_real_work(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) { @@ -117,7 +125,8 @@ int main(int argc, char **argv) YAZ_CHECK_LOG(); test_create_destroy(); - test_for_real_work(); + test_for_real_work(1); + test_for_real_work(3); YAZ_CHECK_TERM; }