PBeFS
Parallel Best-First Search
Loading...
Searching...
No Matches
ConcurrentClosed< D, Lock > Class Template Reference

the closed list shared by the workers, a lock-free set of the nodes More...

#include <PBeFS/astar/structures/ads/ConcurrentClosed.h>

Classes

struct  Local
 the nodes that a worker allocates, and its spare node More...
struct  Successor
 a state generated, with its g, its h and its hash More...

Public Types

using State = state_t< D >
 the state type
using Cost = cost_t< D >
 the cost type
using NodeT = Node< State , Cost >
 the node type

Public Member Functions

 ConcurrentClosed (const D &domain)
 constructor, taking the Domain (which must outlive the table)
Lock & lock (const NodeT *n)
 the lock of the node n, chosen by its address
void prefetch (std::uint64_t hash) const
 the tags and the word that the lookup of the hash reads first, fetched with no wait
NodeT * update (const State &t, std::uint64_t hash, Cost g, Cost h, NodeT *parent, std::uint8_t op, Local &local, std::uint64_t &duplicates)
 records the path to t of cost g through parent and op [see ConcurrentClosed.h]

Detailed Description

template<Domain D, class Lock>
class PBeFS_di_unipi_it::ConcurrentClosed< D, Lock >

the closed list shared by the workers, a lock-free set of the nodes

The interface is the one described in ConcurrentClosed.h.

Member Typedef Documentation

◆ Cost

template<Domain D, class Lock>
using Cost = cost_t< D >

the cost type

◆ NodeT

template<Domain D, class Lock>
using NodeT = Node< State , Cost >

the node type

◆ State

template<Domain D, class Lock>
using State = state_t< D >

the state type

Constructor & Destructor Documentation

◆ ConcurrentClosed()

template<Domain D, class Lock>
ConcurrentClosed ( const D & domain)
inlineexplicit

constructor, taking the Domain (which must outlive the table)

Member Function Documentation

◆ lock()

template<Domain D, class Lock>
Lock & lock ( const NodeT * n)
inline

the lock of the node n, chosen by its address

◆ prefetch()

template<Domain D, class Lock>
void prefetch ( std::uint64_t hash) const
inline

the tags and the word that the lookup of the hash reads first, fetched with no wait

◆ update()

template<Domain D, class Lock>
NodeT * update ( const State & t,
std::uint64_t hash,
Cost g,
Cost h,
NodeT * parent,
std::uint8_t op,
Local & local,
std::uint64_t & duplicates )
inline

records the path to t of cost g through parent and op [see ConcurrentClosed.h]


The documentation for this class was generated from the following file: