~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/multi_thread/multi_thread.cc

  • Committer: Monty Taylor
  • Date: 2009-04-10 18:17:59 UTC
  • mto: (992.1.1 mordred)
  • mto: This revision was merged to the branch mainline in revision 990.
  • Revision ID: mordred@inaugust.com-20090410181759-wr58on1xxc9lwzut
Made plugin registration go through Plugin_registry.

Show diffs side-by-side

added added

removed removed

Lines of Context:
97
97
  }
98
98
};
99
99
 
 
100
class MultiThreadFactory : public SchedulerFactory
 
101
{
 
102
public:
 
103
  MultiThreadFactory() : SchedulerFactory("multi_thread") {}
 
104
  ~MultiThreadFactory() { if (scheduler != NULL) delete scheduler; }
 
105
  Scheduler *operator() ()
 
106
  {
 
107
    if (scheduler == NULL)
 
108
      scheduler= new Multi_thread_scheduler(max_threads);
 
109
    return scheduler;
 
110
  }
 
111
};
 
112
 
100
113
static int init(void *p)
101
114
{
102
 
  Multi_thread_scheduler** sched= static_cast<Multi_thread_scheduler **>(p);
 
115
  SchedulerFactory** sched= static_cast<SchedulerFactory **>(p);
103
116
 
104
 
  *sched= new Multi_thread_scheduler(max_threads);
 
117
  *sched= new MultiThreadFactory();
105
118
 
106
119
  return 0;
107
120
}
109
122
static int deinit(void *p)
110
123
{
111
124
 
112
 
  Multi_thread_scheduler *sched= static_cast<Multi_thread_scheduler *>(p);
113
 
  delete sched;
 
125
  MultiThreadFactory *factory= static_cast<MultiThreadFactory *>(p);
 
126
  delete factory;
114
127
 
115
128
  return 0;
116
129
}