libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
thread_api_traits_impl.hpp
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright © 2004 by J.M.McGuiness, coder@hussar.me.uk
3
**
4
** This library is free software; you can redistribute it and/or
5
** modify it under the terms of the GNU Lesser General Public
6
** License as published by the Free Software Foundation; either
7
** version 2.1 of the License, or (at your option) any later version.
8
**
9
** This library is distributed in the hope that it will be useful,
10
** but WITHOUT ANY WARRANTY; without even the implied warranty of
11
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
** Lesser General Public License for more details.
13
**
14
** You should have received a copy of the GNU Lesser General Public
15
** License along with this library; if not, write to the Free Software
16
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*/
18
19
namespace
jmmcg
{
namespace
LIBJMMCG_VER_NAMESPACE
{
namespace
ppd
{
20
21
// Implementation details..... Don't look below here!!! ;)
22
23
// "api_threading_traits" implementation...
24
25
template
<
generic_traits
::
api_type
API_,
typename
Mdl_>
inline
bool
__fastcall
26
api_threading_traits<API_, Mdl_>::
is_running
(
api_params_type
&parms)
noexcept
(
true
) {
27
if
(parms.id && parms.id!=
get_current_thread_id
(
)
) {
28
const
typename
api_params_type
::suspend_count prev_count=
suspend
(
parms
)
;
29
resume
(
parms
)
;
30
return
!prev_count;
31
}
else
{
32
return
static_cast
<
bool
>(parms.id);
33
}
34
}
35
36
} } }
core
thread_api_traits_impl.hpp
Generated on Tue May 11 2021 17:16:04 for libjmmcg by
1.9.2