Esempio n. 1
0
int job_print(struct job_t *job) {
	struct file_t *file;
	struct sortField_t *sortField;
	struct outrec_t *outrec;
	if (job->inputFile!=NULL) {
		printf("INPUT FILE :\n");
		for (file=job->inputFile; file!=NULL; file=file_getNext(file)) {
			printf("\t");
			file_print(file);
		}
	}
	if (job->outputFile!=NULL) {
		printf("OUTPUT FILE :\n");
		printf("\t");
		file_print(job->outputFile);
	}
	if (job->sortField!=NULL) {
		printf("SORT FIELDS : (");
		for (sortField=job->sortField; sortField!=NULL; sortField=sortField_getNext(sortField)) {
			if (sortField!=job->sortField) {
				printf(",");
			}
			sortField_print(sortField);

		}
		printf(")\n");
	}
	if (job->includeCondField!=NULL) {
		printf("INCLUDE COND : (");
		condField_print(job->includeCondField);
		printf(")\n");
	}
	if (job->omitCondField!=NULL) {
		printf("OMIT COND : (");
		condField_print(job->omitCondField);
		printf(")\n");
	}
	if (job->outrec!=NULL) {
		printf("OUTREC FIELDS : (");
		for (outrec=job->outrec; outrec!=NULL; outrec=outrec_getNext(outrec)) {
			if (outrec!=job->outrec) {
				printf(",");
			}
			outrec_print(outrec);

		}
		printf(")\n");
	}

	if (job->sumFields==1) {
		printf("SUM FIELDS = NONE\n");
	}

	return 0;
}
Esempio n. 2
0
/*///////////////////////////////////////
///////////// THREAD FUNCTION ///////////
///////////////////////////////////////*/
void *waitThread() {
	int childID, status, iteration = 0;
	char linha[256];
	FILE *f;
	f =  fopen("log.txt", "a+");
	if (f == NULL) {
		perror(error_fopen);
	}
	while (fgets(linha, 256, f) != NULL) {
	    iteration++;
	}
    if (pthread_mutex_lock(&mutex) != 0) {
        perror(error_mutex_lock);
    }
	sscanf(linha, "total execution time: %d", &timeTotal);
    if (pthread_mutex_unlock(&mutex) != 0) {
        perror(error_mutex_unlock);
    }
	if (iteration > 0) {
	    iteration = iteration / 3;
	}
	while (1){
		if (pthread_mutex_lock(&mutex) != 0) {
			perror(error_mutex_lock);
		}
		while((numChildren == 0) && (isExit == false)) {
			pthread_cond_wait(&can_wait, &mutex);
		}
		if (pthread_mutex_unlock(&mutex) != 0) {
			perror(error_mutex_unlock);
		}
		if (numChildren > 0) {
			childID = wait(&status);
			if (pthread_mutex_lock(&mutex) != 0) {
				perror(error_mutex_lock);
			}
			timeTotal += update_terminated_process(l, childID, status, time(NULL));
			file_print(f, l, iteration, childID, timeTotal);
			iteration++;
			numChildren--;
			if (pthread_cond_signal(&can_execute) != 0) {
				perror(error_cond_execute);
			}
			if (pthread_mutex_unlock(&mutex) != 0) {
				perror(error_mutex_unlock);
			}
		}
		else if (isExit == true) {
			if (fclose(f) != 0) {
				perror(error_fclose_log);
			}
			pthread_exit(NULL);
		}
	}
}
Esempio n. 3
0
/** Print plain text file 
 @param path File path
 @todo unify with http_send_file
 */
void
odcgi_print_file (const char *path)
{
  openlog ("odcgi", LOG_PID, LOG_USER);

  char filename[1024];
  // Building the full path
  snprintf (filename, sizeof (filename), "%s%s", OD_CFG_ROOT_DIR, path);
  file_t fs;
  file_set_filename (&fs, filename);
  syslog (LOG_NOTICE, "%s\n", filename);
  printf ("Cache-Control: max-age=3600, must-revalidate\n");
  printf ("Content-Type: text/plain\n\n");
  if (file_is_file (&fs))
    {
      printf ("/* %s: */\n", filename);
      file_print (&fs);
    }
  else
    {
      printf ("/* File (%s) does not exist */\n\n", filename);
    }
}