8#ifndef INCLUDED_BSLMT_THREADGROUP
9#define INCLUDED_BSLMT_THREADGROUP
129#include <bslscm_version.h>
141#include <bsl_vector.h>
164 Mutex d_threadsMutex;
198 template <
class INVOKABLE>
199 int addThread(
const INVOKABLE& functor);
200 template <
class INVOKABLE>
201 int addThread(
const INVOKABLE& functor,
211 template <
class INVOKABLE>
213 template <
class INVOKABLE>
238template<
class INVOKABLE>
240int ThreadGroup::addThread(
const INVOKABLE& functor)
245template<
class INVOKABLE>
252template<
class INVOKABLE>
253int ThreadGroup::addThread(
const INVOKABLE& functor,
281template<
class INVOKABLE>
289 for (numAdded = 0; numAdded <
numThreads; ++numAdded) {
290 if (0 != addThread(functor, attributes)) {
BloombergLP::bslma::Allocator * mechanism() const
Definition bslma_bslallocator.h:1126
Definition bslstl_vector.h:1025
allocator_type get_allocator() const BSLS_KEYWORD_NOEXCEPT
Definition bslstl_vector.h:4019
Definition bslma_allocator.h:457
Definition bslmt_mutex.h:315
Definition bslmt_threadattributes.h:356
@ e_CREATE_JOINABLE
Definition bslmt_threadattributes.h:365
DetachedState detachedState() const
Definition bslmt_threadattributes.h:725
ThreadAttributes & setDetachedState(DetachedState value)
Definition bslmt_threadattributes.h:651
Definition bslmt_threadgroup.h:156
int numThreads() const
Definition bslmt_threadgroup.h:299
ThreadGroup(bslma::Allocator *basicAllocator=0)
int addThreads(const INVOKABLE &functor, int numThreads)
Definition bslmt_threadgroup.h:247
Definition bsls_atomic.h:743
int loadRelaxed() const
Definition bsls_atomic.h:1738
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition balxml_encoderoptions.h:68
Definition bslmt_barrier.h:344
Definition bslma_usesbslmaallocator.h:343
Imp::Handle Handle
Definition bslmt_threadutil.h:385
static int createWithAllocator(Handle *handle, ThreadFunction function, void *userData, bslma::Allocator *allocator)