Initial import to Tizen
[profile/ivi/sphinxbase.git] / test / unit / test_thread / test_msgq.c
1 #include <stdio.h>
2 #include <sbthread.h>
3 #include <err.h>
4
5 int
6 worker_main(sbthread_t *th)
7 {
8         sbmsgq_t *msgq;
9         void *data;
10         size_t len;
11
12         msgq = sbthread_msgq(th);
13         while ((data = sbmsgq_wait(msgq, &len, -1, -1)) != NULL) {
14                 int msg = *(int *)data;
15                 E_INFO("Got message: %d\n", msg);
16                 if (msg == 32)
17                         break;
18         }
19
20         return 0;
21 }
22
23 int
24 main(int argc, char *argv[])
25 {
26         sbthread_t *worker;
27         int i;
28         
29         worker = sbthread_start(NULL, worker_main, NULL);
30         for (i = 0; i <= 32; ++i) {
31                 int ii[128];
32                 E_INFO("Sending message: %d\n", i);
33                 ii[0] = i;
34                 if (sbthread_send(worker, sizeof(ii), &ii) < 0) {
35                         E_ERROR("sbthread_send failed\n");
36                         return 1;
37                 }
38         }
39         sbthread_free(worker);
40
41         return 0;
42 }