Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
dac58941
Commit
dac58941
authored
Mar 09, 1999
by
sewardj
Browse files
[project @ 1999-03-09 15:33:16 by sewardj]
Handle CAF_UNENTERED (ie, reverted) in scavenge_mut_once_list
parent
9da01c71
Changes
1
Hide whitespace changes
Inline
Side-by-side
ghc/rts/GC.c
View file @
dac58941
/* -----------------------------------------------------------------------------
* $Id: GC.c,v 1.4
8
1999/03/09 1
4:24:43
sewardj Exp $
* $Id: GC.c,v 1.4
9
1999/03/09 1
5:33:16
sewardj Exp $
*
* (c) The GHC Team 1998-1999
*
...
...
@@ -2036,6 +2036,18 @@ scavenge_mut_once_list(generation *gen)
}
continue
;
case
CAF_UNENTERED
:
{
StgCAF
*
caf
=
(
StgCAF
*
)
p
;
caf
->
body
=
evacuate
(
caf
->
body
);
if
(
failed_to_evac
)
{
failed_to_evac
=
rtsFalse
;
p
->
mut_link
=
new_list
;
new_list
=
p
;
}
}
continue
;
default:
/* shouldn't have anything else on the mutables list */
barf
(
"scavenge_mut_once_list: strange object?"
);
...
...
@@ -2569,6 +2581,7 @@ void RevertCAFs(void)
caf
->
value
=
stgCast
(
StgClosure
*
,
0xdeadbeef
);
caf
->
link
=
stgCast
(
StgCAF
*
,
0xdeadbeef
);
}
enteredCAFs
=
END_CAF_LIST
;
}
void
revert_dead_CAFs
(
void
)
...
...
@@ -2576,8 +2589,9 @@ void revert_dead_CAFs(void)
StgCAF
*
caf
=
enteredCAFs
;
enteredCAFs
=
END_CAF_LIST
;
while
(
caf
!=
END_CAF_LIST
)
{
StgCAF
*
next
=
caf
->
link
;
StgCAF
*
new
=
(
StgCAF
*
)
isAlive
((
StgClosure
*
)
caf
);
StgCAF
*
next
,
*
new
;
next
=
caf
->
link
;
new
=
(
StgCAF
*
)
isAlive
((
StgClosure
*
)
caf
);
if
(
new
)
{
new
->
link
=
enteredCAFs
;
enteredCAFs
=
new
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment