Esempio n. 1
0
int main(void)
{
	init_func();
	
	while (1)
	{
		loop_func();
	}
}
Esempio n. 2
0
int main(void)
{
	init_func();
    /* Replace with your application code */
    while (1) 
    {
		loop_func();
    }
}
Esempio n. 3
0
int main(void)
{
	init_func();
	
	while (1)
	{
		loop_func();
		wait_milliseconds(500);
	}
}
Esempio n. 4
0
static long loop_func( int lvl ) { 
   long n = 0;
   if( lvl == sync ) { down( &sema ); locked++; }
   if( 0 == lvl ) {
      const int tick = 1;
      msleep( tick );                      // выполняемая работа потока 
      n = 1;
   }
   else {
      int i;
      for( i = 0; i < rep; i++ ) {
         n += loop_func( lvl - 1 );
      }
   }
   if( lvl == sync ) up( &sema );
   return n;
}
Esempio n. 5
0
static int thread_func( void* data ) { 
   long n = 0;
   struct param *parent = (struct param*)data;
   int num = parent->num - 1;             // порядковый номер потока (локальный!)
   struct task_struct *t1 = NULL;
   struct param parm;
   printk( "! %s is running\n", st( num ) );
   if( num > 0 ) {
      init_completion( &parm.finished );
      parm.num = num;
      t1 = kthread_run( thread_func, (void*)&parm, IDENT, num );
   }
   n = loop_func( max_level );            // рекурсивный вызов вложенных циклов
   if( t1 != NULL ) 
      wait_for_completion( &parm.finished );
   complete( &parent->finished );
   printk( "! %s do %ld units\n", st( num ), n );
   return 0;
}
Esempio n. 6
0
void	check_fd(t_client *client)
{
  if (FD_ISSET(client->s, &(client->fd_read)))
    {
      memset(client->by_serv, '\0', MAX_BUFF + 1);
      my_read(client->s, client->by_serv, MAX_BUFF);
    }
  if (FD_ISSET(1, &(client->fd_read)))
    loop_func(client);
  if (FD_ISSET(1, &(client->fd_write)))
    {
      if (client->by_serv != NULL)
	{
	  my_printf(1, "%s\n", client->by_serv);
	  free(client->by_serv);
	  client->by_serv = NULL;
	}
    }
  if (FD_ISSET(client->s, &(client->fd_write)))
    loop_write(client);
}