Permalink
Browse files

MultiTheadPOC.pl added. It shows quickly how we can use Inline::C to …

…do threading with SDL MultiThreading. You need to install Inline::C btw :)
  • Loading branch information...
1 parent 0d1c12d commit 15d93b1bd9524b30fa18143a99c5f7eb89ce28e5 @kthakore kthakore committed Nov 5, 2009
Showing with 37 additions and 0 deletions.
  1. +37 −0 scripts/MultiThreadPOC.pl
View
@@ -0,0 +1,37 @@
+use Inline C => DATA =>
+ LIBS => `sdl-config --libs` =>
+ INC => `sdl-config --cflags`;
+
+my $fp = get_function_pointer();
+print '[Perl] In perl we got :'.$fp."\n";
+print '[Perl] Making Thread.';
+
+make_thread( $fp, 'I AM THE OVERLOARD XENU!!!');
+
+__END__
+__C__
+
+#include <SDL.h>
+#include <SDL_thread.h>
+
+char DoIt(char* c){
+ int threadID = SDL_ThreadID();
+ printf("[C-Thread] we are in %d \n", &threadID);
+ printf("[C-Thread] Called with %s \n", c);
+ return c;
+}
+
+int get_function_pointer() {
+ printf("[C] Function Pointer is at %d!\n", &DoIt);
+ return PTR2IV(&DoIt);
+}
+
+
+int make_thread(IV pointer, char* c)
+{
+ void * fp = INT2PTR( void *, pointer);
+ void * data = c;
+ SDL_CreateThread( fp, data );
+ printf("[C] Created thread: \n");
+}
+

0 comments on commit 15d93b1

Please sign in to comment.