blob: 09a4fa9ea3068ada63182762af00ece7e5d95189 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
/* -*- C++ -*- */
// $Id$
// Thread_Manager.i
// Unique thread id.
ACE_INLINE ACE_thread_t
ACE_Thread_Descriptor::self (void)
{
ACE_TRACE ("ACE_Thread_Descriptor::self");
return this->thr_id_;
}
ACE_INLINE ACE_Task_Base *
ACE_Thread_Descriptor::task (void)
{
ACE_TRACE ("ACE_Thread_Descriptor::task");
return this->task_;
}
// Unique kernel-level thread handle.
ACE_INLINE void
ACE_Thread_Descriptor::self (ACE_hthread_t &handle)
{
ACE_TRACE ("ACE_Thread_Descriptor::self");
handle = this->thr_handle_;
}
// Group ID.
ACE_INLINE int
ACE_Thread_Descriptor::grp_id (void)
{
ACE_TRACE ("ACE_Thread_Descriptor::grp_id");
return grp_id_;
}
// Current state of the thread.
ACE_INLINE ACE_Thread_State
ACE_Thread_Descriptor::state (void)
{
ACE_TRACE ("ACE_Thread_Descriptor::state");
return thr_state_;
}
// Set the exit status.
ACE_INLINE void *
ACE_Thread_Control::status (void *s)
{
ACE_TRACE ("ACE_Thread_Control::status");
return this->status_ = s;
}
// Get the exit status.
ACE_INLINE void *
ACE_Thread_Control::status (void)
{
ACE_TRACE ("ACE_Thread_Control::status");
return this->status_;
}
// Returns the current <Thread_Manager>.
ACE_INLINE ACE_Thread_Manager *
ACE_Thread_Control::thr_mgr (void)
{
ACE_TRACE ("ACE_Thread_Control::thr_mgr");
return this->tm_;
}
// Atomically set a new <Thread_Manager> and return the old
// <Thread_Manager>.
ACE_INLINE ACE_Thread_Manager *
ACE_Thread_Control::thr_mgr (ACE_Thread_Manager *tm)
{
ACE_TRACE ("ACE_Thread_Control::thr_mgr");
ACE_Thread_Manager *o_tm = this->tm_;
this->tm_ = tm;
return o_tm;
}
// Return the unique ID of the thread.
ACE_INLINE ACE_thread_t
ACE_Thread_Manager::thr_self (void)
{
ACE_TRACE ("ACE_Thread_Manager::thr_self");
return ACE_Thread::self ();
}
ACE_INLINE ACE_Task_Base *
ACE_Thread_Manager::task (void)
{
ACE_TRACE ("ACE_Thread_Manager::task");
ACE_Thread_Descriptor *td = this->thread_desc_self () ;
if (td == 0)
return 0;
else
return td->task ();
}
ACE_INLINE int
ACE_Thread_Manager::open (size_t)
{
// Currently no-op.
return 0;
}
ACE_INLINE void
ACE_Thread_Manager::wait_on_exit (int do_wait)
{
this->automatic_wait_ = do_wait;
}
ACE_INLINE int
ACE_Thread_Manager::wait_on_exit (void)
{
return this->automatic_wait_;
}
|