~ubuntu-branches/ubuntu/trusty/drizzle/trusty

« back to all changes in this revision

Viewing changes to plugin/multi_thread/multi_thread.h

  • Committer: Bazaar Package Importer
  • Author(s): Monty Taylor
  • Date: 2010-10-02 14:17:48 UTC
  • mfrom: (1.1.1 upstream)
  • mto: (2.1.17 sid)
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: james.westby@ubuntu.com-20101002141748-m6vbfbfjhrw1153e
Tags: 2010.09.1802-1
* New upstream release.
* Removed pid-file argument hack.
* Updated GPL-2 address to be new address.
* Directly copy in drizzledump.1 since debian doesn't have sphinx 1.0 yet.
* Link to jquery from libjs-jquery. Add it as a depend.
* Add drizzled.8 symlink to the install files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
{
30
30
private:
31
31
  drizzled::atomic<uint32_t> thread_count;
32
 
  pthread_attr_t attr;
33
32
 
34
33
public:
35
34
  MultiThreadScheduler(const char *name_arg): 
36
35
    Scheduler(name_arg)
37
36
  {
38
 
    struct sched_param tmp_sched_param;
39
 
 
40
 
    memset(&tmp_sched_param, 0, sizeof(struct sched_param));
41
 
 
42
 
    /* Setup attribute parameter for session threads. */
43
 
    (void) pthread_attr_init(&attr);
44
 
    (void) pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
45
 
    pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
46
 
 
47
 
    tmp_sched_param.sched_priority= WAIT_PRIOR;
48
 
    (void) pthread_attr_setschedparam(&attr, &tmp_sched_param);
49
 
 
 
37
    setStackSize();
50
38
    thread_count= 0;
51
39
  }
52
40
 
54
42
  bool addSession(drizzled::Session *session);
55
43
  void killSessionNow(drizzled::Session *session);
56
44
  
57
 
  void runSession(drizzled::Session *session)
58
 
  {
59
 
    if (drizzled::internal::my_thread_init())
60
 
    {
61
 
      session->disconnect(drizzled::ER_OUT_OF_RESOURCES, true);
62
 
      statistic_increment(drizzled::aborted_connects, &LOCK_status);
63
 
      killSessionNow(session);
64
 
    }
65
 
 
66
 
    session->thread_stack= (char*) &session;
67
 
    session->run();
68
 
    killSessionNow(session);
69
 
  }
 
45
  void runSession(drizzled::Session *session);
 
46
private:
 
47
  void setStackSize();
70
48
};
71
49
 
72
50
#endif /* PLUGIN_MULTI_THREAD_MULTI_THREAD_H */