mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 21:27:56 +00:00
parent
7f8db06284
commit
d0522706ba
@ -91,7 +91,6 @@ class Core::Pager_object : public Object_pool<Pager_object>::Entry
|
|||||||
DEAD = 0x2U,
|
DEAD = 0x2U,
|
||||||
SINGLESTEP = 0x4U,
|
SINGLESTEP = 0x4U,
|
||||||
SIGNAL_SM = 0x8U,
|
SIGNAL_SM = 0x8U,
|
||||||
DISSOLVED = 0x10U,
|
|
||||||
SUBMIT_SIGNAL = 0x20U,
|
SUBMIT_SIGNAL = 0x20U,
|
||||||
BLOCKED_PAUSE_SM = 0x40U,
|
BLOCKED_PAUSE_SM = 0x40U,
|
||||||
MIGRATE = 0x80U
|
MIGRATE = 0x80U
|
||||||
@ -115,9 +114,6 @@ class Core::Pager_object : public Object_pool<Pager_object>::Entry
|
|||||||
inline void mark_signal_sm() { _status |= SIGNAL_SM; }
|
inline void mark_signal_sm() { _status |= SIGNAL_SM; }
|
||||||
inline bool has_signal_sm() { return _status & SIGNAL_SM; }
|
inline bool has_signal_sm() { return _status & SIGNAL_SM; }
|
||||||
|
|
||||||
inline void mark_dissolved() { _status |= DISSOLVED; }
|
|
||||||
inline bool dissolved() { return _status & DISSOLVED; }
|
|
||||||
|
|
||||||
inline bool to_submit() { return _status & SUBMIT_SIGNAL; }
|
inline bool to_submit() { return _status & SUBMIT_SIGNAL; }
|
||||||
inline void submit_signal() { _status |= SUBMIT_SIGNAL; }
|
inline void submit_signal() { _status |= SUBMIT_SIGNAL; }
|
||||||
inline void reset_submit() { _status &= (uint8_t)(~SUBMIT_SIGNAL); }
|
inline void reset_submit() { _status &= (uint8_t)(~SUBMIT_SIGNAL); }
|
||||||
|
@ -523,8 +523,6 @@ uint8_t Pager_object::_unsynchronized_client_recall(bool get_state_and_block)
|
|||||||
|
|
||||||
void Pager_object::cleanup_call()
|
void Pager_object::cleanup_call()
|
||||||
{
|
{
|
||||||
_state.mark_dissolved();
|
|
||||||
|
|
||||||
/* revoke ec and sc cap of client before the sm cap */
|
/* revoke ec and sc cap of client before the sm cap */
|
||||||
if (_state.sel_client_ec != Native_thread::INVALID_INDEX)
|
if (_state.sel_client_ec != Native_thread::INVALID_INDEX)
|
||||||
revoke(Obj_crd(_state.sel_client_ec, 2));
|
revoke(Obj_crd(_state.sel_client_ec, 2));
|
||||||
@ -750,10 +748,6 @@ void Pager_object::migrate(Affinity::Location location)
|
|||||||
|
|
||||||
Pager_object::~Pager_object()
|
Pager_object::~Pager_object()
|
||||||
{
|
{
|
||||||
/* sanity check that object got dissolved already - otherwise bug */
|
|
||||||
if (!_state.dissolved())
|
|
||||||
nova_die();
|
|
||||||
|
|
||||||
/* revoke portal used for the cleanup call and sm cap for blocking state */
|
/* revoke portal used for the cleanup call and sm cap for blocking state */
|
||||||
revoke(Obj_crd(_selectors, 2));
|
revoke(Obj_crd(_selectors, 2));
|
||||||
cap_map().remove(_selectors, 2, false);
|
cap_map().remove(_selectors, 2, false);
|
||||||
|
Loading…
Reference in New Issue
Block a user