/* 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 ();
} 

dependabot/npm_and_yarn/devel/electron4/files/bl-1.2.3'>dependabot/npm_and_yarn/devel/electron4/files/bl-1.2.3</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/elliptic-6.5.3'>dependabot/npm_and_yarn/devel/electron4/files/elliptic-6.5.3</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/elliptic-6.5.4'>dependabot/npm_and_yarn/devel/electron4/files/elliptic-6.5.4</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/ini-1.3.7'>dependabot/npm_and_yarn/devel/electron4/files/ini-1.3.7</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.19'>dependabot/npm_and_yarn/devel/electron4/files/lodash-4.17.19</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron4/files/lodash.merge-4.6.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2'>dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.3'>dependabot/npm_and_yarn/devel/electron4/files/minimist-1.2.3</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/node-fetch-2.6.1'>dependabot/npm_and_yarn/devel/electron4/files/node-fetch-2.6.1</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/serve-10.1.2'>dependabot/npm_and_yarn/devel/electron4/files/serve-10.1.2</option>
<option value='dependabot/npm_and_yarn/devel/electron4/files/y18n-3.2.2'>dependabot/npm_and_yarn/devel/electron4/files/y18n-3.2.2</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.3'>dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.3</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.4'>dependabot/npm_and_yarn/devel/electron6/files/elliptic-6.5.4</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/ini-1.3.8'>dependabot/npm_and_yarn/devel/electron6/files/ini-1.3.8</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19'>dependabot/npm_and_yarn/devel/electron6/files/lodash-4.17.19</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2'>dependabot/npm_and_yarn/devel/electron6/files/lodash.merge-4.6.2</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1'>dependabot/npm_and_yarn/devel/electron6/files/node-fetch-2.6.1</option>
<option value='dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2'>dependabot/npm_and_yarn/devel/electron6/files/serve-10.1.2</option>
<option value='gnome-3.22'>gnome-3.22</option>
<option value='gnome-3.24'>gnome-3.24</option>
<option value='gnome-3.26'>gnome-3.26</option>
<option value='gnome-3.28'>gnome-3.28</option>
<option value='gnome-3.32'>gnome-3.32</option>
<option value='gnome-3.36'>gnome-3.36</option>
<option value='gstreamer' selected='selected'>gstreamer</option>
<option value='gstreamer-1.16'>gstreamer-1.16</option>
<option value='gstreamer0.10-removal'>gstreamer0.10-removal</option>
<option value='main'>main</option>
<option value='master'>master</option>
<option value='mate-1.16'>mate-1.16</option>
<option value='mate-1.18'>mate-1.18</option>
<option value='mate-1.20'>mate-1.20</option>
<option value='mate-1.22'>mate-1.22</option>
</select> <input type='submit' value='switch'/></form></td></tr>
<tr><td class='sub'>FreeBSD GNOME current development ports (https://github.com/freebsd/freebsd-ports-gnome)</td><td class='sub right'></td></tr></table>
<table class='tabs'><tr><td>
<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/about/?h=gstreamer'>about</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/?h=gstreamer'>summary</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/refs/?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'>refs</a><a class='active' href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/graphics/p5-Image-Compare?h=gstreamer'>log</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/tree/graphics/p5-Image-Compare?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'>tree</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/commit/graphics/p5-Image-Compare?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'>commit</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/diff/graphics/p5-Image-Compare?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'>diff</a><a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/stats/graphics/p5-Image-Compare?h=gstreamer'>stats</a></td><td class='form'><form class='right' method='get' action='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/graphics/p5-Image-Compare'>
<input type='hidden' name='h' value='gstreamer'/><input type='hidden' name='id' value='adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'>root</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/graphics?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'>graphics</a>/<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/graphics/p5-Image-Compare?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0'>p5-Image-Compare</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/~lantw44/cgit/cgit.cgi/freebsd-ports-gnome/log/graphics/p5-Image-Compare?h=gstreamer&amp;id=adc5fa77e4e6062c1ad291a3b322f6d52724d2b0&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Age</th><th class='left'>Files</th><th class='left'>Lines</th></tr>