コード例 #1
0
void *computethread(void *arg1)
{
	int error;
	int localdone = 0;
	struct timespec sleeptime;
	double val;

	sleeptime.tv_sec = 0;
	sleeptime.tv_nsec = TEN_MILLION;

	while(!localdone)
	{
		if (error = randsafe(&val))
			break;
		if (error = add( sin(val) ))
			break;
		if (error = getdone(&localdone))
			break;
		nanosleep(&sleeptime, NULL);
	}

	seterror(error);
	return NULL;

}
コード例 #2
0
ファイル: computethread.c プロジェクト: KeyMaker13/portfolio
/* ARGSUSED */
void *computethread(void *arg1) {             /* compute a random partial sum */
   int error;
   int localdone = 0;
   struct timespec sleeptime;
   double val;

   sleeptime.tv_sec = 0;
   sleeptime.tv_nsec = TEN_MILLION;                                  /* 10 ms */

   while (!localdone) {
       if (error = randsafe(&val)) /* get a random number between 0.0 and 1.0 */
           break;
       if (error = add(sin(val)))
          break;
       if (error = getdone(&localdone))
          break;
       nanosleep(&sleeptime, NULL);                   /* let other threads in */
   }
   seterror(error);
   return NULL;
}