Changeset - 278632d244b7
[Not reviewed]
default
0 1 0
ethanzonca@localhost.localdomain - 16 years ago 2009-11-23 23:19:30
ethanzonca@localhost.localdomain
Minor updates, added sleep
1 file changed with 10 insertions and 18 deletions:
0 comments (0 inline, 0 general)
src/server/slave.c
Show inline comments
 
@@ -81,8 +81,8 @@ int main(int argc, char *argv[])
 

	
 

	
 
  /* Code-filled Variables  */
 
  int jobnum;          /* The job number that we're currently working */
 
  int framenum;        /* @TODO: Remotio should fill this */
 
  int jobnum = 0;          /* The job number that we're currently working */
 
  int framenum = 0;        /* @TODO: Remotio should fill this */
 

	
 
  int busy = 0;        /* Client business 1=busy 0=idle */
 

	
 
@@ -101,7 +101,7 @@ int main(int argc, char *argv[])
 

	
 
  struct distrenjob *myjob; /* Structure to hold data gathered from the XML file */
 

	
 
  int cont = 0;
 
  int cont = 1;
 
  int framesInLocalQueue = 0;
 

	
 
  while(cont)
 
@@ -111,9 +111,7 @@ int main(int argc, char *argv[])
 
      {
 
        /* @TODO: Add remotio hooks */
 
        // jobnum = remoteio_read(jobnum); /* Set jobnum from remoteio (we could use info from struct, but we need this info to download the xmlfile */
 
        jobnum = 0;
 
        //framenum = remoteio_read(jobnum); /* Set framenum from remoteio */
 
        framenum = 0;
 

	
 
        fprintf(stderr, "Preparing to render frame %d in job %d\n", framenum, jobnum);
 

	
 
@@ -128,12 +126,12 @@ int main(int argc, char *argv[])
 
        _distren_asprintf(&urltoOutput, "http://protofusion.org/distren/stor/tmp/", jobdatapath ); // Prepares the URL where output is posted
 
        _distren_asprintf(&pathtoXml, "%s/job%d/job%d.xml", datadir, jobnum ); // Prepares the path to the job's XML file
 

	
 
        // Downloads the job tar if it isn't  present.
 
        // Download the job tar if it isn't  present.
 
        struct stat buffer;
 
        int fstatus = stat(pathtoJobfile, &buffer);
 
        if(fstatus == -1)
 
          {
 
            /* Downloads the Tar */
 
            /* Download the Tar */
 
            if( curlget(urltoTar, pathtoTar) == 0)
 
              fprintf(stderr, "Job data retrieved successfully\n");
 
            else
 
@@ -169,30 +167,24 @@ int main(int argc, char *argv[])
 
        /* Prepares the path to the jobfile */
 
        _distren_asprintf(&pathtoOutput, "%s/job%d/output/job%d-frame%d.%s", datadir, jobnum, jobnum, framenum, outputExt );
 

	
 

	
 
        /** Series of ifs for jobtype based on xml content */
 
        while(1 == 1){
 
        /* Execute blender */
 
          exec_blender(pathtoJobfile, pathtoOutput, framenum); /* @TODO: This warning should be fixed :D */
 
          break;
 
        }
 

	
 
        /* When blender is finished, run this... */
 
        fprintf(stderr, "Finished frame %d in job %d, uploading...", framenum, jobnum);
 
        curlpost(pathtoOutput, urltoOutput); /* uploads (HTML POST) the output at outputpath to the server at outputurl */
 
        tell_the_server(DISTREN_REQUEST_DONEFRAME); /* Tells the server that it's finished rendering this frame */
 
        tell_the_server(DISTREN_REQUEST_DONEFRAME); /* Tells the server that it's done rendering, and upload is done */
 
        busy = 0;
 
        /* Slave now becomes idle, doesn't need to tell the server anything, ssh handles this. */
 
        framesInLocalQueue--;
 
      }
 

	
 
    else
 
      fprintf(stderr,"Nothing to do. Idling...\n");
 
    // If the server says that every frame for the last jobnum is finished, OR if the data is getting old
 
    if(1 == 0){
 
      delete_jobdata(jobnum, datadir);
 
    }
 
    sleep(5); // Poll 5 seconds. @TODO: Remove all polling
 
  }
 
/* Test code for execio
 
  fprintf(stderr,"Testing out execioness");
 
  exec_blender("/home/ethanzonca/Blender/houses.blend", "/home/ethanzonca/Blender/out.png", 1);
 
  */
 
  return 0;
 
}
0 comments (0 inline, 0 general)