mirror of
https://github.com/urbit/shrub.git
synced 2024-12-21 01:41:37 +03:00
u3: allocate emergency buffer on every road, free on bail for trace cells
(cherry picked from commit 3a11a08b712b52805f97ceb06da8417a8b7cbde4)
This commit is contained in:
parent
eaf47ce0cf
commit
146db7b832
@ -361,7 +361,9 @@ _cm_signal_deep(c3_w mil_w)
|
|||||||
// go utterly haywire.
|
// go utterly haywire.
|
||||||
//
|
//
|
||||||
if ( 0 == u3H->rod_u.bug.mer ) {
|
if ( 0 == u3H->rod_u.bug.mer ) {
|
||||||
u3H->rod_u.bug.mer = u3i_string("emergency buffer");
|
u3H->rod_u.bug.mer = u3i_string(
|
||||||
|
"emergency buffer with sufficient space to cons the trace and bail"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( mil_w ) {
|
if ( mil_w ) {
|
||||||
@ -731,6 +733,11 @@ u3m_bail(u3_noun how)
|
|||||||
u3m_signal(how);
|
u3m_signal(how);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// release the emergency buffer, ensuring space for cells
|
||||||
|
//
|
||||||
|
u3z(u3R->bug.mer);
|
||||||
|
u3R->bug.mer = 0;
|
||||||
|
|
||||||
/* Reconstruct a correct error ball.
|
/* Reconstruct a correct error ball.
|
||||||
*/
|
*/
|
||||||
if ( _(u3ud(how)) ) {
|
if ( _(u3ud(how)) ) {
|
||||||
@ -900,6 +907,10 @@ u3m_hate(c3_w pad_w)
|
|||||||
|
|
||||||
u3R->ear_p = u3R->cap_p;
|
u3R->ear_p = u3R->cap_p;
|
||||||
u3m_leap(pad_w);
|
u3m_leap(pad_w);
|
||||||
|
|
||||||
|
u3R->bug.mer = u3i_string(
|
||||||
|
"emergency buffer with sufficient space to cons the trace and bail"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* u3m_love(): return product from leap.
|
/* u3m_love(): return product from leap.
|
||||||
|
Loading…
Reference in New Issue
Block a user