/simpletypesystem/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/simpletypesystem/trunk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "mainloop.h"
#include <SimpleTypeSystem.h>

sboolean
_do_some_work_1 (sint * itt) {
  s_print ("Hello from Worker 1! itt:%d\n", *itt);
  *itt += 1;
  if (*itt >= 100) {
    return FALSE;
  } else {
    return TRUE;
  }
}

sboolean
_do_some_work_2 (sint * itt) {
  s_print ("Hello from Worker 2! itt:%d\n", *itt);
  *itt += 1;
  if (*itt >= 100) {
    return FALSE;
  } else {
    return TRUE;
  }
}

void
_do_teardown (sint * itt, spointer user_data) {
  free (itt);
}

int test_main_loop (void) {
  setup_unit ();

  SMainLoop * loop = NULL;
  loop = s_main_loop_get_default ();
  
  test_case (loop != NULL, "The loop is not NULL");
  
  sint * itt = malloc (sizeof (sint));
  *itt = 0;
  
  s_main_loop_add_teardown_handler (loop, CALLBACK (_do_teardown), itt, NULL);
  
  s_main_loop_add_worker (loop, S_MAIN_LOOP_RING_ONE, RUNFUNC(_do_some_work_1), itt);


  s_main_loop_add_worker (loop, S_MAIN_LOOP_RING_TWO, RUNFUNC(_do_some_work_2), itt);

  s_main_loop_run (loop);
  
  s_print ("Value: %d\n", *itt);
  
  test_case (*itt >= 100, "The avlue of the itterator is ");

  s_main_loop_quit (loop);
  
  end_unit ();
}