/usr/include/cxxtools/threadpool.h is in libcxxtools-dev 2.0-4ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | /*
* Copyright (C) 2010 Tommi Maekitalo
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* is provided AS IS, WITHOUT ANY WARRANTY; without even the implied
* warranty of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, and
* NON-INFRINGEMENT. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifndef CXXTOOLS_THREADPOOL_H
#define CXXTOOLS_THREADPOOL_H
#include <cxxtools/callable.h>
namespace cxxtools
{
class ThreadPoolImpl;
class ThreadPool
{
public:
/** @brief Creates a thread pool structure.
When the argument \a doStart is set to true (which is the
default), the threads are started.
*/
explicit ThreadPool(unsigned size, bool doStart = true);
/** @brief Destroys a thread pool structure.
Before destruction all jobs are processed and the threads are
stopped.
*/
~ThreadPool();
/** @brief Explict start of the thread pool.
*/
void start();
/** @brief Stops the thread of the thread pool.
All threads of this pool are stopped. The current job is
finished. Remaining jobs are discarded, when cancel is set.
Otherwise the threads stop, when the queue is empty.
*/
void stop(bool cancel = false);
/** @brief Schedules a task to be processed.
The task is processed by the next available thread.
*/
void schedule(const Callable<void>& cb);
/** @brief Returns true, if the threadpool is in running state.
*/
bool running() const;
/** @brief Returns true, if the threadpool is in stopped state.
*/
bool stopped() const;
private:
ThreadPoolImpl* _impl;
};
};
#endif // CXXTOOLS_THREADPOOL_H
|