76 lines
1.5 KiB
C
76 lines
1.5 KiB
C
/* test posix thread folder proxy */
|
|
|
|
|
|
#include "camel.h"
|
|
|
|
CamelThreadProxy *proxy;
|
|
CamelFuncDef *func_def;
|
|
|
|
|
|
void
|
|
test_sync_func (int num)
|
|
{
|
|
printf ("Sync function number %d\n", num);
|
|
printf ("Sync function : current thread : %d\n", pthread_self ());
|
|
|
|
}
|
|
|
|
|
|
void
|
|
test_async_cb (int num)
|
|
{
|
|
printf ("Callback number %d\n", num);
|
|
printf ("Callback : current thread : %d\n", pthread_self ());
|
|
}
|
|
|
|
void
|
|
test_async_func (int num)
|
|
{
|
|
CamelOp *cb;
|
|
|
|
printf ("Async function number %d\n", num);
|
|
printf ("Async function : current thread : %d\n", pthread_self ());
|
|
sleep (1);
|
|
cb = camel_marshal_create_op (func_def, test_async_cb, num);
|
|
camel_thread_proxy_push_cb (proxy, cb);
|
|
|
|
|
|
}
|
|
|
|
int
|
|
main (int argc, char **argv)
|
|
{
|
|
int i;
|
|
CamelOp *op;
|
|
|
|
camel_init ();
|
|
|
|
func_def =
|
|
camel_func_def_new (camel_marshal_NONE__INT,
|
|
1,
|
|
GTK_TYPE_INT);
|
|
|
|
printf ("--== Testing Simple marshalling system ==--\n");
|
|
for (i=0; i<5; i++) {
|
|
printf ("Iterration number %d\n", i);
|
|
op = camel_marshal_create_op (func_def, test_sync_func, i);
|
|
camel_op_run (op);
|
|
camel_op_free (op);
|
|
|
|
}
|
|
printf ("\n\n");
|
|
|
|
proxy = camel_thread_proxy_new ();
|
|
|
|
printf ("--== Testing Asynchronous Operation System ==--\n");
|
|
for (i=0; i<5; i++) {
|
|
printf ("Pushing async operation number %d for execution\n", i);
|
|
op = camel_marshal_create_op (func_def, test_async_func, i);
|
|
camel_thread_proxy_push_op (proxy, op);
|
|
}
|
|
printf ("\n\n");
|
|
printf ("--== Operations execution planned ==--\n");
|
|
gtk_main ();
|
|
}
|
|
|