<commit_before>/*ckwg +5
 * Copyright 2011 by Kitware, Inc. All Rights Reserved. Please refer to
 * KITWARE_LICENSE.TXT for licensing information, or contact General Counsel,
 * Kitware, Inc., 28 Corporate Drive, Clifton Park, NY 12065.
 */

#ifndef VISTK_SCHEDULES_EXAMPLES_SCHEDULES_THREAD_POOL_SCHEDULE_H
#define VISTK_SCHEDULES_EXAMPLES_SCHEDULES_THREAD_POOL_SCHEDULE_H

#include "examples-config.h"

#include <vistk/pipeline/schedule.h>

#include <boost/shared_ptr.hpp>

namespace vistk
{

/**
 * \class thread_pool_schedule
 *
 * \brief A schedule which process execution among a group of threads.
 *
 * \schedule Manages execution using a set number of threads.
 *
 * \section config Configuration
 *
 * \li \c num_threads The number of threads to run. A setting of \c 0 means "auto".
 */
class VISTK_SCHEDULES_EXAMPLES_NO_EXPORT thread_pool_schedule
  : public schedule
{
  public:
    /**
     * \brief Constructor.
     *
     * \param config Contains config for the edge.
     * \param num_threads The number of threads to use. 0 means the number of processors available.<commit_msg>Use aliases to document configuration<commit_after>/*ckwg +5
 * Copyright 2011 by Kitware, Inc. All Rights Reserved. Please refer to
 * KITWARE_LICENSE.TXT for licensing information, or contact General Counsel,
 * Kitware, Inc., 28 Corporate Drive, Clifton Park, NY 12065.
 */

#ifndef VISTK_SCHEDULES_EXAMPLES_SCHEDULES_THREAD_POOL_SCHEDULE_H
#define VISTK_SCHEDULES_EXAMPLES_SCHEDULES_THREAD_POOL_SCHEDULE_H

#include "examples-config.h"

#include <vistk/pipeline/schedule.h>

#include <boost/shared_ptr.hpp>

namespace vistk
{

/**
 * \class thread_pool_schedule
 *
 * \brief A schedule which process execution among a group of threads.
 *
 * \schedule Manages execution using a set number of threads.
 *
 * \configs
 *
 * \config{num_threads} The number of threads to run. A setting of \c 0 means "auto".
 */
class VISTK_SCHEDULES_EXAMPLES_NO_EXPORT thread_pool_schedule
  : public schedule
{
  public:
    /**
     * \brief Constructor.
     *
     * \param config Contains config for the edge.
     * \param num_threads The number of threads to use. 0 means the number of processors available.
{'fraction_non_alphanumeric': 0.07888736890104879, 'fraction_numerical': 0.012767897856817145, 'mean_word_length': 4.032110091743119, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6951541', 'n_tokens_mistral': 738, 'n_tokens_neox': 709, 'n_words': 225}