0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-09-29 20:28:52 +02:00

ircd::ctx: Assertions for calling then().

This commit is contained in:
Jason Volk 2018-04-07 03:59:02 -07:00
parent 2770c19ac2
commit b0c687ea0e

View file

@ -98,6 +98,7 @@ ircd::ctx::notify(shared_state<T> &st)
if(!current)
{
assert(bool(st.then));
st.cond.notify_all();
st.then(st);
return;
@ -105,6 +106,7 @@ ircd::ctx::notify(shared_state<T> &st)
ircd::post([&st]
{
assert(bool(st.then));
st.cond.notify_all();
st.then(st);
});
@ -179,6 +181,8 @@ ircd::ctx::state(const shared_state<T> &st)
case 0x00: return future_state::INVALID;
case 0x42: return future_state::READY;
case 0x123: return future_state::RETRIEVED;
default: return future_state::PENDING;
default:
assert(uintptr_t(st.p) >= 0x1000);
return future_state::PENDING;
}
}