~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_plugin.cc

  • Committer: Brian Aker
  • Date: 2009-01-24 16:18:44 UTC
  • Revision ID: brian@gir-3.local-20090124161844-yeo4yhpw5d4ur780
Refactor of scheduler plugin code to simplify around one structure. Also
enhanced failure code for multi load attempts (and moved it out of
sql_plugin and just into the actual plugin container).

Set pool_of_threads to be default.

Show diffs side-by-side

added added

removed removed

Lines of Context:
874
874
int plugin_init(int *argc, char **argv, int flags)
875
875
{
876
876
  uint32_t idx;
877
 
  uint32_t number_of_schedulers= 0; /* We must insist that only one of these plugins get loaded at a time */
878
877
  struct st_mysql_plugin **builtins;
879
878
  struct st_mysql_plugin *plugin;
880
879
  struct st_plugin_int tmp, *plugin_ptr;
913
912
  {
914
913
    for (plugin= *builtins; plugin->name; plugin++)
915
914
    {
916
 
      if (plugin->type == DRIZZLE_SCHEDULING_PLUGIN)
917
 
        number_of_schedulers++;
918
 
 
919
915
      memset(&tmp, 0, sizeof(tmp));
920
916
      tmp.plugin= plugin;
921
917
      tmp.name.str= (char *)plugin->name;
966
962
    plugin_ptr= *dynamic_element(&plugin_array, idx, struct st_plugin_int **);
967
963
    if (plugin_ptr->state == PLUGIN_IS_UNINITIALIZED)
968
964
    {
969
 
      if (plugin_ptr->plugin->type == DRIZZLE_SCHEDULING_PLUGIN)
970
 
        number_of_schedulers++;
971
 
 
972
965
      if (plugin_initialize(plugin_ptr))
973
966
      {
974
967
        plugin_ptr->state= PLUGIN_IS_DYING;
978
971
    }
979
972
  }
980
973
 
981
 
  if (number_of_schedulers == 0)
982
 
  {
983
 
    fprintf(stderr, "You must load at least one scheduler plugin\n");
984
 
    exit(1);
985
 
  }
986
 
  else if (number_of_schedulers > 1)
987
 
  {
988
 
    fprintf(stderr, "You can not load more then one scheduler plugin\n");
989
 
    exit(1);
990
 
  }
991
 
 
992
974
 
993
975
end:
994
976
  free_root(&tmp_root, MYF(0));