use strict; use warnings; use MyLibSWIG; use Win32; my $cnt_cback = \&my_connect_cb; for(1..100){ print("\n\n ########## TEST ITERATE : $_ ########## \n"); MyTest(); } sub MyTest { MyLibSWIG::MyRegister($cnt_cback); #Test: engage interpreter here while callback is being processed for (1..10){ print(sprintf("[%d] PRL: Doing something %d\n",Win32::GetCurrentThreadId(),$_)); Win32::Sleep(int(rand(100))); } MyLibSWIG::MyDeregister(); } sub my_connect_cb { print(sprintf("[%d] PRL: my_connect_cb called bConn = %d\n",Win32::GetCurrentThreadId(), $_[0])); }