~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
2234 by Brian Aker
Mass removal of ifdef/endif in favor of pragma once.
16
#pragma once
1130.3.21 by Monty Taylor
Added missing include guards. Removed server_includes.h from header.
17
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
18
#include <drizzled/atomics.h>
19
#include <drizzled/gettext.h>
20
#include <drizzled/error.h>
21
#include <drizzled/plugin/scheduler.h>
2173.2.1 by Monty Taylor
Fixes incorrect usage of include
22
#include <drizzled/internal/my_sys.h>
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
23
#include <drizzled/sql_parse.h>
24
#include <string>
25
1933.2.3 by Brian Aker
Have session store a copy of its current thread.
26
namespace multi_thread {
27
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
28
class MultiThreadScheduler: public drizzled::plugin::Scheduler
29
{
30
private:
31
  drizzled::atomic<uint32_t> thread_count;
32
33
public:
34
  MultiThreadScheduler(const char *name_arg): 
35
    Scheduler(name_arg)
36
  {
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
37
    setStackSize();
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
38
    thread_count= 0;
39
  }
40
41
  ~MultiThreadScheduler();
2318.6.43 by Olaf van der Spek
Refactor
42
  bool addSession(const drizzled::Session::shared_ptr&);
43
  void killSessionNow(const drizzled::Session::shared_ptr&);
1961 by Brian Aker
This extends our coverage of interrupting active threads. With no crash
44
  void killSession(drizzled::Session*);
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
45
  
1932.3.13 by Brian Aker
Cleanup session ownership rules such that we know exactly when session has
46
  void runSession(drizzled::session_id_t);
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
47
private:
48
  void setStackSize();
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
49
};
1130.3.21 by Monty Taylor
Added missing include guards. Removed server_includes.h from header.
50
1933.2.3 by Brian Aker
Have session store a copy of its current thread.
51
} // namespace multi_thread
52