~clint-fewbar/ubuntu/precise/gearmand/drop-unneeded-patches

« back to all changes in this revision

Viewing changes to libgearman/server_function.c

  • Committer: Bazaar Package Importer
  • Author(s): Monty Taylor
  • Date: 2009-08-11 10:06:22 UTC
  • mto: (1.2.3 upstream) (6.1.1 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20090811100622-6ig4iknanc73olum
ImportĀ upstreamĀ versionĀ 0.9

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
                            const char *function_name,
23
23
                            size_t function_name_size)
24
24
{
25
 
  gearman_server_function_st *server_function;
 
25
  gearman_server_function_st *function;
26
26
 
27
 
  for (server_function= server->function_list; server_function != NULL;
28
 
       server_function= server_function->next)
 
27
  for (function= server->function_list; function != NULL;
 
28
       function= function->next)
29
29
  {
30
 
    if (server_function->function_name_size == function_name_size &&
31
 
        !memcmp(server_function->function_name, function_name,
32
 
                function_name_size))
 
30
    if (function->function_name_size == function_name_size &&
 
31
        !memcmp(function->function_name, function_name, function_name_size))
33
32
    {
34
 
      return server_function;
 
33
      return function;
35
34
    }
36
35
  }
37
36
 
38
 
  server_function= gearman_server_function_create(server, NULL);
39
 
  if (server_function == NULL)
 
37
  function= gearman_server_function_create(server, NULL);
 
38
  if (function == NULL)
40
39
    return NULL;
41
40
 
42
 
  server_function->function_name= malloc(function_name_size + 1);
43
 
  if (server_function->function_name == NULL)
 
41
  function->function_name= malloc(function_name_size + 1);
 
42
  if (function->function_name == NULL)
44
43
  {
45
 
    gearman_server_function_free(server_function);
 
44
    gearman_server_function_free(function);
46
45
    return NULL;
47
46
  }
48
47
 
49
 
  memcpy(server_function->function_name, function_name, function_name_size);
50
 
  server_function->function_name[function_name_size]= 0;
51
 
  server_function->function_name_size= function_name_size;
 
48
  memcpy(function->function_name, function_name, function_name_size);
 
49
  function->function_name[function_name_size]= 0;
 
50
  function->function_name_size= function_name_size;
52
51
 
53
 
  return server_function;
 
52
  return function;
54
53
}
55
54
 
56
55
gearman_server_function_st *
57
56
gearman_server_function_create(gearman_server_st *server,
58
 
                               gearman_server_function_st *server_function)
 
57
                               gearman_server_function_st *function)
59
58
{
60
 
  if (server_function == NULL)
 
59
  if (function == NULL)
61
60
  {
62
 
    server_function= malloc(sizeof(gearman_server_function_st));
63
 
    if (server_function == NULL)
 
61
    function= malloc(sizeof(gearman_server_function_st));
 
62
    if (function == NULL)
64
63
      return NULL;
65
64
 
66
 
    memset(server_function, 0, sizeof(gearman_server_function_st));
67
 
    server_function->options|= GEARMAN_SERVER_FUNCTION_ALLOCATED;
 
65
    function->options= GEARMAN_SERVER_FUNCTION_ALLOCATED;
68
66
  }
69
67
  else
70
 
    memset(server_function, 0, sizeof(gearman_server_function_st));
71
 
 
72
 
  server_function->server= server;
73
 
  server_function->max_queue_size= GEARMAN_DEFAULT_MAX_QUEUE_SIZE;
74
 
 
75
 
  GEARMAN_LIST_ADD(server->function, server_function,)
76
 
 
77
 
  return server_function;
 
68
    function->options= 0;
 
69
 
 
70
  function->worker_count= 0;
 
71
  function->job_count= 0;
 
72
  function->job_total= 0;
 
73
  function->job_running= 0;
 
74
  function->max_queue_size= GEARMAN_DEFAULT_MAX_QUEUE_SIZE;
 
75
  function->function_name_size= 0;
 
76
  function->server= server;
 
77
  GEARMAN_LIST_ADD(server->function, function,)
 
78
  function->function_name= NULL;
 
79
  function->worker_list= NULL;
 
80
  memset(function->job_list, 0,
 
81
         sizeof(gearman_server_job_st *) * GEARMAN_JOB_PRIORITY_MAX);
 
82
  memset(function->job_end, 0,
 
83
         sizeof(gearman_server_job_st *) * GEARMAN_JOB_PRIORITY_MAX);
 
84
 
 
85
  return function;
78
86
}
79
87
 
80
 
void gearman_server_function_free(gearman_server_function_st *server_function)
 
88
void gearman_server_function_free(gearman_server_function_st *function)
81
89
{
82
 
  if (server_function->function_name != NULL)
83
 
    free(server_function->function_name);
84
 
 
85
 
  GEARMAN_LIST_DEL(server_function->server->function, server_function,)
86
 
 
87
 
  if (server_function->options & GEARMAN_SERVER_FUNCTION_ALLOCATED)
88
 
    free(server_function);
 
90
  if (function->function_name != NULL)
 
91
    free(function->function_name);
 
92
 
 
93
  GEARMAN_LIST_DEL(function->server->function, function,)
 
94
 
 
95
  if (function->options & GEARMAN_SERVER_FUNCTION_ALLOCATED)
 
96
    free(function);
89
97
}