Main Page   Compound List   File List   Compound Members   File Members  

Main.cpp

00001 #include <stdlib.h>
00002 #include <pthread.h>
00003 #include "ImageDisplay.h"
00004 #include "ImageWindow.h"
00005 
00006 /* prototypes */
00007 int procMain(int, char**);
00008 void *start_routine(void *arg);
00009 
00010 
00011 /* globals */
00012 pthread_t procThread;
00013 
00014 pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
00015 pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
00016 
00017 bool request = false;
00018 void (*createFirstWindow)();
00019 
00020 
00021 /* local */
00022 struct Args { int argc; char** argv; };
00023 
00024 
00025 int main(int argc, char** argv) 
00026 {
00027         Glow::Init(argc, argv);
00028         Args args = { argc,argv };
00029 
00030         pthread_mutex_init(&mut,NULL);
00031         pthread_create(&procThread, NULL, start_routine, &args);
00032         
00033         pthread_mutex_lock(&mut);
00034         {
00035                 while (!request)
00036                         pthread_cond_wait(&cond, &mut);
00037         }
00038         pthread_mutex_unlock(&mut);
00039         
00040         createFirstWindow();
00041 
00042         Glow::MainLoop();
00043         
00044         return 0;
00045 }
00046 
00047 
00048 void *start_routine(void *arg)
00049 {
00050         Args* args = (Args*) arg;
00051 
00052         int retval = procMain(args->argc, args->argv);
00053 
00054         pthread_cond_destroy(&cond);
00055         pthread_mutex_destroy(&mut);
00056         
00057         exit(retval); 
00058         
00059         return 0;
00060 }
00061 

Generated on Thu Mar 11 11:43:51 2004 for libRTImageDisplay by doxygen1.2.18