mirror of
https://github.com/matrix-construct/construct
synced 2024-11-25 16:22:35 +01:00
ircd::ctx: Minor movement/cleanup.
This commit is contained in:
parent
f4a4674daa
commit
b796668a77
2 changed files with 22 additions and 4 deletions
22
ircd/ctx.cc
22
ircd/ctx.cc
|
@ -246,6 +246,20 @@ ircd::ctx::ctx::interruption_point(std::nothrow_t)
|
|||
else return false;
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::ctx::ctx::started()
|
||||
const
|
||||
{
|
||||
return stack.base != 0;
|
||||
}
|
||||
|
||||
bool
|
||||
ircd::ctx::ctx::finished()
|
||||
const
|
||||
{
|
||||
return started() && yc == nullptr;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// ctx/ctx.h
|
||||
|
@ -923,9 +937,13 @@ ircd::ctx::context::join()
|
|||
if(joined())
|
||||
return;
|
||||
|
||||
mark(prof::event::JOIN);
|
||||
assert(bool(c));
|
||||
c->adjoindre.wait();
|
||||
mark(prof::event::JOIN);
|
||||
c->adjoindre.wait([this]
|
||||
{
|
||||
return joined();
|
||||
});
|
||||
|
||||
mark(prof::event::JOINED);
|
||||
}
|
||||
|
||||
|
|
|
@ -55,8 +55,8 @@ struct ircd::ctx::ctx
|
|||
list::node node; // node for ctx::list
|
||||
dock adjoindre; // contexts waiting for this to join()
|
||||
|
||||
bool started() const { return stack.base != 0; }
|
||||
bool finished() const { return started() && yc == nullptr; }
|
||||
bool started() const; // context was ever entered
|
||||
bool finished() const; // context will not be further entered.
|
||||
|
||||
bool interruption_point(std::nothrow_t); // Check for interrupt (and clear flag)
|
||||
bool termination_point(std::nothrow_t); // Check for terminate
|
||||
|
|
Loading…
Reference in a new issue