114 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "gb-include.h"
 | |
| 
 | |
| #include "Loop.h"
 | |
| #include <pthread.h>
 | |
| #include <sys/types.h>  // pid_t
 | |
| 
 | |
| static pthread_attr_t s_attr;
 | |
| static void *startUp ( void *state ) ;
 | |
| 
 | |
| static pid_t s_pid;
 | |
| 
 | |
| int main ( int argc , char *argv[] ) {
 | |
| 
 | |
| 	s_pid = getpid();
 | |
| 	
 | |
| 	if ( ! g_loop.init() ) {
 | |
| 		log("
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| main::Loop init failed" ); return 1; }
 | |
| 
 | |
| 	// start a thread
 | |
| 	if ( pthread_attr_init( &s_attr ) ) 
 | |
| 		fprintf (stderr,"Threads::init: pthread_attr_init: error\n");
 | |
| 	if ( pthread_attr_setdetachstate(&s_attr,PTHREAD_CREATE_DETACHED) )
 | |
| 		fprintf ( stderr,"Threads::init: pthread_attr_setdeatcte:\n");
 | |
| 	pthread_t tid1, tid2;
 | |
| 	int err = pthread_create ( &tid1 , &s_attr, startUp, (void *)2) ;
 | |
| 	if ( err != 0     ) return -1;
 | |
| 
 | |
| 	// pause for signals to queue up
 | |
| 	//sleep(1);
 | |
| 
 | |
| 	// run the loop
 | |
| 	if ( ! g_loop.runLoop()    ) {
 | |
| 		log("
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| main::runLoop failed" ); return 1; }
 | |
| 
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| void *startUp ( void *state ) {
 | |
| 	// sleep 
 | |
| 	sleep(2);
 | |
| 	// put low priroity first
 | |
| 	int32_t niceness;
 | |
| 	for ( int32_t i = 0 ; i < 16 ; i++ ) {
 | |
| 		if ( i < 8 ) niceness = 0;
 | |
| 		else         niceness = 1;
 | |
| 		sigval_t svt; 
 | |
| 		svt.sival_int = (int)niceness ; //(int)(t->m_state); // fd;
 | |
| 		fprintf(stderr,"queuing niceness of %"INT32"\n",niceness);
 | |
| 		sigqueue ( s_pid , GB_SIGRTMIN + 1 + niceness, svt );
 | |
| 	}
 | |
| }
 |