Exemplo n.º 1
0
void taskpool_init( int c, int n, int m )
{
    log_3("taskpool_init %d %d %d - enter\n",c,n,m);
    log_0("taskpool_init - allocating taskpool\n");
    feldspar_taskpool = malloc(sizeof(struct taskpool));
    log_1("taskpool_init - allocating %d closures\n",c);
    feldspar_taskpool->closures = malloc( c * sizeof(void*) );
    feldspar_taskpool->capacity = c;
    feldspar_taskpool->head = 0;
    feldspar_taskpool->tail = 0;
    feldspar_taskpool->shutdown = 0;
    feldspar_taskpool->num_threads = n;
    feldspar_taskpool->act_threads = n;
    feldspar_taskpool->min_threads = m;
    feldspar_taskpool->max_threads = n;
    if( n > 0 )
        pthread_mutex_init( &(feldspar_taskpool->mutex), NULL );
    log_1("taskpool_init - starting %d threads\n",n);
    for( ; n > 0; --n )
    {
        pthread_t th;
        pthread_create( &th, NULL, &worker, NULL );
        log_1("taskpool_init - thread %p created\n", &th);
    }
    log_0("taskpool_init - leave\n");
}
Exemplo n.º 2
0
void taskpool_shutdown()
{
    log_0("taskpool_shutdown - enter\n");
    feldspar_taskpool->shutdown = 1;
    log_0("taskpool_shutdown - leave\n");
}
Exemplo n.º 3
0
Arquivo: main.c Projeto: igou/com
void app_main(void *data)
{   
    EatEvent_st event;
    u16 len = 0;
    EatUartConfig_st uart_config;
    eat_bool ret;

    APP_InitRegions();//Init app RAM
    APP_init_clib(); //C library initialize, second step
    #if 0
   if(eat_uart_open(EAT_UART_1 ) == EAT_FALSE)
    {
	    eat_trace("[%s] uart(%d) open fail!", __FUNCTION__, EAT_UART_1);
    }
	
    uart_config.baud = EAT_UART_BAUD_115200;
    uart_config.dataBits = EAT_UART_DATA_BITS_8;
    uart_config.parity = EAT_UART_PARITY_NONE;
    uart_config.stopBits = EAT_UART_STOP_BITS_1;
    if(EAT_FALSE == eat_uart_set_config(EAT_UART_1, &uart_config))
    {
        eat_trace("[%s] uart(%d) set config fail!", __FUNCTION__, EAT_UART_1);
    }
 #endif
    log_0("app_main ENTRY");
    Gpio_init();
    ret = eat_mem_init(s_memPool,EAT_MEM_MAX_SIZE);
    if (!ret)
        log_0("ERROR: eat memory initial error!");
    
    eat_timer_start(TIMER_SOFT_RESET,600000);
    at_cluster();

    while(EAT_TRUE)
    {
        eat_get_event(&event);
        log_2("MSG id%x", event.event);
        switch(event.event)
        {
          case EAT_EVENT_TIMER :
           {
             EatTimer_enum timer_id = event.data.timer.timer_id;
             timer_hdlr(timer_id);
           } 
             break;
          case EAT_EVENT_INT :      
             log_0("INTERRUPT IS COMING");
             if(get_key())/*donw = 1 */
                key_hdlr();               
             break;
             
           case EAT_EVENT_USER_MSG:
            {
             u8 data = event.data.user_msg.data[0];
             set_debounce(data);
            }
              break;
           case EAT_EVENT_KEY:
           {
            eat_bool press = event.data.key.is_pressed;
            log_0("power key");
            pwrkey_hdlr(press);
           }
              break;
              
          case EAT_EVENT_MDM_READY_WR:
              break;
              
          case EAT_EVENT_UART_READY_RD:
            log_2("EAT_EVENT_UART_READY_RD");
              break;
          case EAT_EVENT_MDM_READY_RD:
              {        
                  len = 0;
                           /* boot info(such as:RDY ;+CFUN: 1  ;+CPIN: READY)
                            * will be sent to here(main task);
                            */
                  len = eat_modem_read(buf, 2048); /*necessary:Read it out*/ 
                  buf[len] = 0;
                  log_2("main task buf (%s)",buf);
                  #if 0
                 if(core_is_ready(buf))
                    {
                     eat_trace("core is ready");
                     eat_timer_start(TIMER_SOFT_RESET,600000);
                     at_cluster();
                   }  
                 #endif
               }
              break;    
          case EAT_EVENT_UART_SEND_COMPLETE :
              break;
          default:
              break;
        }

    }

}