~brianaker/gearmand/gearmnan_job_use_client

« back to all changes in this revision

Viewing changes to libgearman/worker.cc

  • Committer: Continuous Integration
  • Date: 2013-08-16 09:06:25 UTC
  • mfrom: (859.1.1 gearman_worker_grab_job)
  • Revision ID: ci@tangent.org-20130816090625-e7jk9n1dkxidybzv
Merge lp:~brianaker/gearmand/1063648 Build: jenkins-Gearmand-830

Show diffs side-by-side

added added

removed removed

Lines of Context:
656
656
    Worker* worker= worker_shell->impl();
657
657
    struct _worker_function_st *function;
658
658
    uint32_t active;
 
659
    bool no_job= false;
659
660
 
660
661
    gearman_return_t unused;
661
662
    if (not ret_ptr)
842
843
                if (worker->job()->impl()->assigned.command == GEARMAN_COMMAND_NO_JOB or
843
844
                    worker->job()->impl()->assigned.command == GEARMAN_COMMAND_OPTION_RES)
844
845
                {
 
846
                  no_job= true;
845
847
                  gearman_packet_free(&(worker->job()->impl()->assigned));
846
848
                  break;
847
849
                }
861
863
            }
862
864
          }
863
865
 
 
866
          if (worker->in_work() == false and no_job)
 
867
          {
 
868
            *ret_ptr= GEARMAN_NO_JOBS;
 
869
            break;
 
870
          }
 
871
 
864
872
        case GEARMAN_WORKER_STATE_PRE_SLEEP:
865
873
          for (worker->con= (&worker->universal)->con_list; worker->con;
866
874
               worker->con= worker->con->next_connection())
937
945
 
938
946
          break;
939
947
      }
 
948
 
 
949
      if (*ret_ptr == GEARMAN_NO_JOBS)
 
950
      {
 
951
        break;
 
952
      }
940
953
    }
941
954
  }
942
955
 
1038
1051
    {
1039
1052
      case GEARMAN_WORKER_WORK_UNIVERSAL_GRAB_JOB:
1040
1053
        {
 
1054
          worker->in_work(true);
1041
1055
          gearman_return_t ret;
1042
1056
          worker->work_job(gearman_worker_grab_job(worker->shell(), NULL, &ret));
 
1057
          worker->in_work(false);
1043
1058
 
1044
1059
          if (gearman_failed(ret))
1045
1060
          {