scc
2022.4.0
SystemC components library
sc_thread_pool.h
1
/*******************************************************************************
2
* Copyright 2021 MINRES Technologies GmbH
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*******************************************************************************/
16
17
#ifndef SYSC_SCC_SC_THREAD_POOL_H_
18
#define SYSC_SCC_SC_THREAD_POOL_H_
19
#include "peq.h"
20
#include <cci_configuration>
21
#include <functional>
22
#include <systemc>
23
29
namespace
scc
{
30
31
class
sc_thread_pool
: sc_core::sc_object {
32
public
:
33
sc_thread_pool
();
34
virtual
~
sc_thread_pool
();
35
36
void
execute(std::function<
void
(
void
)> fct);
37
38
cci::cci_param<unsigned> max_concurrent_threads{
"max_concurrent_threads"
, 16};
39
40
private
:
41
scc::peq
<std::function<void(
void
)>> dispatch_queue{
"dispatch_queue"
};
42
unsigned
thread_avail{0}, thread_active{0};
43
};
44
}
/* namespace scc */
// end of scc-sysc
46
#endif
/* SYSC_SCC_SC_THREAD_POOL_H_ */
scc::sc_thread_pool
Definition:
sc_thread_pool.h:31
scc
SCC SystemC utilities.
Definition:
clock_if_mixins.h:25
scc::peq
priority event queue
Definition:
peq.h:41
src
sysc
scc
sc_thread_pool.h
Generated by
1.9.1