Пример #1
0
int main(int argc, char *argv[]) {
  struct TData_t *data;
  struct TTask_t *task;
  int shm_data, shm_task;
  sem_t *sem_task_ready, *sem_task_read, *sem_task_processed;

  /* Get shared memory segments and semaphores */
  get_shm_segments(&shm_data, &shm_task, &data, &task);
  get_sems(&sem_task_ready, &sem_task_read, &sem_task_processed);

  /* One single iteration */
  get_and_process_task(sem_task_ready, sem_task_read, data, task);
  notify_task_completed(sem_task_processed);

  close_shared_memory_segments(shm_data, shm_task);

  return EXIT_SUCCESS;
}
int main(int argc,char *argv[]){
  int shm_symbol; /* Descriptor del archivo de simbolos */
  
  struct TSymbol_t *symbol; /* Estructura de datos de simbolos */

  sem_t *sem_symbol_ready; /* Indica que el simbolo esta listo */
  sem_t *sem_symbol_decoded; /* Indica que el simbolo esta decodificado */

  /* Crear segmentos de memoria compartida */
  get_shm_segments(&shm_symbol,&symbol);
  
  /* Obtener semaforos */
  get_sems(&sem_symbol_ready,&sem_symbol_decoded);

  while(1){
    get_and_process_task(sem_symbol_ready,sem_symbol_decoded,symbol);
  }
  
  return EXIT_SUCCESS;
}