#include <parallelSearch.h>
Public メソッド | |
Worker (ParallelSearch *parent, boost::thread *th=0) | |
void | operator() (void) |
const Job | getJob (Worker *w) |
call with shared_mutex locked | |
int | getPriority () const |
int | getPriorityMax () const |
boost::thread * | getThread () const |
void | push_back (Job job) |
shared_mutex lock | |
bool | pop_back_job () |
shared_mutex lock | |
bool | pop_back_job (JobContent *) |
void | checkStop () const |
const Job | getCurrentJob () const |
void | setCurrentJob (Job const &job) |
void | resetCrurrentJob () |
unsigned int | threadId () const |
void | stopMaster () |
bool | isWaiting () const |
void | setWaiting (bool wait) |
void | setWaitingBlock (uint64_t block, uint64_t sib) |
void | resetWaitingBlock () |
uint64_t | waitingBlock () const |
uint64_t | waitingSibling () const |
Public 変数 | |
boost::mutex | block_mutex |
boost::condition | block_condition |
Private メソッド | |
void | setThreadId (unsigned int id) |
void | clearJobs () |
shared_mutex lock ֤ǸƤ | |
Private 変数 | |
ParallelSearch * | parent |
boost::thread * | th |
boost::shared_ptr< JobPool > | job_pool |
Job | current_job |
unsigned int | thread_id |
volatile bool | waiting |
volatile uint64_t | waiting_block |
volatile uint64_t | sibling |
フレンド | |
class | ParallelSearch |
parallelSearch.h の 215 行で定義されています。
osl::search::Worker::Worker | ( | ParallelSearch * | parent, | |
boost::thread * | th = 0 | |||
) | [inline, explicit] |
parallelSearch.h の 226 行で定義されています。
void osl::search::Worker::operator() | ( | void | ) |
parallelSearch.cc の 126 行で定義されています。
参照先 osl::search::ParallelSearch::getJob(), parent, setWaiting(), stopMaster(), th, threadId(), と waitingBlock().
int osl::search::Worker::getPriority | ( | ) | const [inline] |
int osl::search::Worker::getPriorityMax | ( | ) | const [inline] |
boost::thread* osl::search::Worker::getThread | ( | ) | const [inline] |
void osl::search::Worker::push_back | ( | Job | job | ) |
shared_mutex lock
parallelSearch.cc の 162 行で定義されています。
参照先 job_pool, osl::search::ParallelSearch::makeWorkers(), parent, と osl::search::ParallelSearch::shared_mutex.
bool osl::search::Worker::pop_back_job | ( | ) |
shared_mutex lock
parallelSearch.cc の 170 行で定義されています。
参照先 job_pool, parent, と osl::search::ParallelSearch::shared_mutex.
bool osl::search::Worker::pop_back_job | ( | JobContent * | content | ) |
parallelSearch.cc の 175 行で定義されています。
参照先 job_pool, parent, と osl::search::ParallelSearch::shared_mutex.
void osl::search::Worker::checkStop | ( | ) | const |
parallelSearch.cc の 180 行で定義されています。
参照先 osl::search::Job::checkStop(), current_job, osl::search::Job::isNull(), osl::search::parallelSearch, と osl::search::ParallelSearch::stopping().
参照元 osl::search::ParallelSearch::checkStop(), osl::search::ParallelSearch::getJob(), osl::search::ParallelSearch::getJobNonBlock(), と osl::search::SearchStateCore::testTimeOut().
const Job osl::search::Worker::getCurrentJob | ( | ) | const [inline] |
void osl::search::Worker::setCurrentJob | ( | Job const & | job | ) | [inline] |
void osl::search::Worker::resetCrurrentJob | ( | ) | [inline] |
unsigned int osl::search::Worker::threadId | ( | ) | const [inline] |
parallelSearch.h の 265 行で定義されています。
参照先 thread_id.
参照元 osl::search::CheckmateSearcherHolder< Checkmate >::Table::clone(), operator()(), と stopMaster().
void osl::search::Worker::stopMaster | ( | ) |
parallelSearch.cc の 153 行で定義されています。
参照先 parent, osl::search::ParallelSearch::stopMaster(), と threadId().
参照元 operator()().
bool osl::search::Worker::isWaiting | ( | ) | const [inline] |
void osl::search::Worker::setWaiting | ( | bool | wait | ) | [inline] |
parallelSearch.h の 270 行で定義されています。
参照先 waiting.
参照元 osl::search::ParallelSearch::getJobNonBlock(), と operator()().
void osl::search::Worker::setWaitingBlock | ( | uint64_t | block, | |
uint64_t | sib | |||
) | [inline] |
void osl::search::Worker::resetWaitingBlock | ( | ) | [inline] |
uint64_t osl::search::Worker::waitingBlock | ( | ) | const [inline] |
uint64_t osl::search::Worker::waitingSibling | ( | ) | const [inline] |
void osl::search::Worker::setThreadId | ( | unsigned int | id | ) | [inline, private] |
void osl::search::Worker::clearJobs | ( | ) | [inline, private] |
friend class ParallelSearch [friend] |
parallelSearch.h の 266 行で定義されています。
ParallelSearch* osl::search::Worker::parent [private] |
boost::thread* osl::search::Worker::th [private] |
boost::shared_ptr<JobPool> osl::search::Worker::job_pool [private] |
parallelSearch.h の 219 行で定義されています。
参照元 clearJobs(), getJob(), getPriority(), getPriorityMax(), pop_back_job(), と push_back().
Job osl::search::Worker::current_job [private] |
parallelSearch.h の 220 行で定義されています。
参照元 checkStop(), getCurrentJob(), resetCrurrentJob(), と setCurrentJob().
unsigned int osl::search::Worker::thread_id [private] |
volatile bool osl::search::Worker::waiting [private] |
parallelSearch.h の 222 行で定義されています。
参照元 isWaiting(), resetWaitingBlock(), setWaiting(), と setWaitingBlock().
volatile uint64_t osl::search::Worker::waiting_block [private] |
volatile uint64_t osl::search::Worker::sibling [private] |
boost::mutex osl::search::Worker::block_mutex |
parallelSearch.h の 252 行で定義されています。
boost::condition osl::search::Worker::block_condition |