Symbian platform (C++)
SDK native APIs, runtime and tooling
Loading...
Searching...
No Matches
thread::internal Namespace Reference

Classes

struct  CaseInSelectClause
 
struct  ChannelWaiterState
 
struct  ReadSelectable
 
class  Selectable
 
struct  Selector
 
struct  WriteSelectable
 

Typedefs

using CaseStateArray = absl::InlinedVector< CaseInSelectClause, 4 >
 

Enumerations

enum class  CopyOrMove { Copy , Move }
 

Functions

template<typename T >
T CopyOrMoveOut (T *absl_nonnull item, CopyOrMove strategy)
 
void PushBack (CaseInSelectClause **head, CaseInSelectClause *element)
 
void UnlinkFromList (CaseInSelectClause **head, CaseInSelectClause *element)
 
void PushBack (CaseInSelectClause *absl_nonnull *absl_nonnull head, CaseInSelectClause *absl_nonnull element)
 
void UnlinkFromList (CaseInSelectClause *absl_nonnull *absl_nonnull head, CaseInSelectClause *absl_nonnull element)
 
static void Notify (CaseInSelectClause *absl_nonnull *absl_nonnull head, CaseInSelectClause *absl_nonnull c) ABSL_EXCLUSIVE_LOCKS_REQUIRED(c -> selector->mu)
 
static bool LockReaderAndWriterSelectorsIffBothAreWaiting (const CaseInSelectClause *absl_nonnull reader, const CaseInSelectClause *absl_nonnull writer) ABSL_EXCLUSIVE_TRYLOCK_FUNCTION(true
 
s1 mu Lock ()
 
 if (s1->picked_case_index==Selector::kNonePicked)
 
s1 mu Unlock ()
 

Variables

static constexpr auto kCopy = CopyOrMove::Copy
 
static constexpr auto kMove = CopyOrMove::Move
 
static bool reader selector mu
 
internal::Selector * s2
 
return false
 

Typedef Documentation

◆ CaseStateArray

typedef absl::InlinedVector< CaseInSelectClause, 4 > thread::internal::CaseStateArray

Enumeration Type Documentation

◆ CopyOrMove

enum class thread::internal::CopyOrMove
strong
Enumerator
Copy 
Move 

Function Documentation

◆ CopyOrMoveOut()

template<typename T >
T thread::internal::CopyOrMoveOut ( T *absl_nonnull  item,
CopyOrMove  strategy 
)

◆ if()

thread::internal::if ( s1->  picked_case_index = = Selector::kNonePicked)

◆ Lock()

s1 mu thread::internal::Lock ( )

◆ LockReaderAndWriterSelectorsIffBothAreWaiting()

static bool thread::internal::LockReaderAndWriterSelectorsIffBothAreWaiting ( const CaseInSelectClause *absl_nonnull  reader,
const CaseInSelectClause *absl_nonnull  writer 
)
static

◆ Notify()

static void thread::internal::Notify ( CaseInSelectClause *absl_nonnull *absl_nonnull  head,
CaseInSelectClause *absl_nonnull  c 
) -> selector->mu)
static

◆ PushBack() [1/2]

void thread::internal::PushBack ( CaseInSelectClause **  head,
CaseInSelectClause *  element 
)
inline

◆ PushBack() [2/2]

void thread::internal::PushBack ( CaseInSelectClause *absl_nonnull *absl_nonnull  head,
CaseInSelectClause *absl_nonnull  element 
)
inline

◆ UnlinkFromList() [1/2]

void thread::internal::UnlinkFromList ( CaseInSelectClause **  head,
CaseInSelectClause *  element 
)
inline

◆ UnlinkFromList() [2/2]

void thread::internal::UnlinkFromList ( CaseInSelectClause *absl_nonnull *absl_nonnull  head,
CaseInSelectClause *absl_nonnull  element 
)
inline

◆ Unlock()

s1 mu thread::internal::Unlock ( )

Variable Documentation

◆ false

return thread::internal::false

◆ kCopy

constexpr auto thread::internal::kCopy = CopyOrMove::Copy
staticconstexpr

◆ kMove

constexpr auto thread::internal::kMove = CopyOrMove::Move
staticconstexpr

◆ mu

static bool reader selector writer selector thread::internal::mu
Initial value:
{
if (writer->selector == reader->selector) {
return false;
}
internal::Selector* s1 =
(reader->selector < writer->selector ? reader->selector
: writer->selector)

◆ s2

internal::Selector* thread::internal::s2
Initial value:
=
(reader->selector < writer->selector ? writer->selector
: reader->selector)