~drizzle-trunk/drizzle/development

1999.6.1 by kalebral at gmail
update Copyright strings to a more common format to help with creating the master debian copyright file
1
/* Copyright (C) 2009 Sun Microsystems, Inc.
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
2
3
  This program is free software; you can redistribute it and/or modify
4
  it under the terms of the GNU General Public License as published by
5
  the Free Software Foundation; version 2 of the License.
6
7
  This program is distributed in the hope that it will be useful,
8
  but WITHOUT ANY WARRANTY; without even the implied warranty of
9
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
  GNU General Public License for more details.
11
12
  You should have received a copy of the GNU General Public License
13
  along with this program; if not, write to the Free Software
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
14
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
15
1130.3.21 by Monty Taylor
Added missing include guards. Removed server_includes.h from header.
16
#ifndef PLUGIN_MULTI_THREAD_MULTI_THREAD_H
17
#define PLUGIN_MULTI_THREAD_MULTI_THREAD_H
18
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
19
#include <drizzled/atomics.h>
20
#include <drizzled/gettext.h>
21
#include <drizzled/error.h>
22
#include <drizzled/plugin/scheduler.h>
2173.2.1 by Monty Taylor
Fixes incorrect usage of include
23
#include <drizzled/internal/my_sys.h>
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
24
#include <drizzled/sql_parse.h>
25
#include <string>
26
1932.3.3 by Brian Aker
Pull in code to abstract out the session list a bit.
27
namespace drizzled {
28
class Session;
29
}
30
1933.2.3 by Brian Aker
Have session store a copy of its current thread.
31
namespace multi_thread {
32
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
33
class MultiThreadScheduler: public drizzled::plugin::Scheduler
34
{
35
private:
36
  drizzled::atomic<uint32_t> thread_count;
37
38
public:
39
  MultiThreadScheduler(const char *name_arg): 
40
    Scheduler(name_arg)
41
  {
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
42
    setStackSize();
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
43
    thread_count= 0;
44
  }
45
46
  ~MultiThreadScheduler();
1932.3.13 by Brian Aker
Cleanup session ownership rules such that we know exactly when session has
47
  bool addSession(drizzled::Session::shared_ptr &session);
48
  void killSessionNow(drizzled::Session::shared_ptr &session);
1961 by Brian Aker
This extends our coverage of interrupting active threads. With no crash
49
  void killSession(drizzled::Session*);
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
50
  
1932.3.13 by Brian Aker
Cleanup session ownership rules such that we know exactly when session has
51
  void runSession(drizzled::session_id_t);
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
52
private:
53
  void setStackSize();
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
54
};
1130.3.21 by Monty Taylor
Added missing include guards. Removed server_includes.h from header.
55
1933.2.3 by Brian Aker
Have session store a copy of its current thread.
56
} // namespace multi_thread
57
1130.3.21 by Monty Taylor
Added missing include guards. Removed server_includes.h from header.
58
#endif /* PLUGIN_MULTI_THREAD_MULTI_THREAD_H */