/*-------------------------------------------------------------------*/ DLL_EXPORT int hthread_broadcast_condition( COND* plc, const char* location ) { int rc; rc = hthread_cond_broadcast( plc ); PTTRACE( "broadcast", NULL, plc, location, rc ); return rc; }
void * testThread ( void * arg ) { int retVal, i; struct testdata * data = (struct testdata *) arg; for( i=0; i<THREAD_NUM; i++ ) hthread_create( &data->thread[i], NULL, data->function, (void *) data ); while( *(data->start_num) != THREAD_NUM ) hthread_yield(); hthread_mutex_lock( data->mutex ); hthread_cond_broadcast( data->cond ); hthread_mutex_unlock( data->mutex ); for( i=0; i<THREAD_NUM; i++ ) hthread_join( data->thread[i], NULL ); retVal = *(data->waken_num); hthread_exit( (void *) retVal ); return NULL; }