mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-07 13:16:34 +02:00
Added TODO's
This commit is contained in:
parent
e8e57484be
commit
6b6b77124d
1 changed files with 10 additions and 0 deletions
10
runtime.c
10
runtime.c
|
@ -36,7 +36,17 @@ object Cyc_global_set2(void *thd, object cont, object * glo, object value)
|
||||||
value = share_object(thd, NULL, value, &do_gc);
|
value = share_object(thd, NULL, value, &do_gc);
|
||||||
gc_mut_update((gc_thread_data *) thd, *glo, value);
|
gc_mut_update((gc_thread_data *) thd, *glo, value);
|
||||||
*(glo) = value;
|
*(glo) = value;
|
||||||
|
// TODO: if we don't do this how does GC know to transport the global??
|
||||||
|
// don't really want to do this though because it is a performance nightmare
|
||||||
|
// can we use add_mutation and add cvar as a case when transporting mutations?
|
||||||
((gc_thread_data *) thd)->globals_changed = 1; // No longer needed??
|
((gc_thread_data *) thd)->globals_changed = 1; // No longer needed??
|
||||||
|
/*
|
||||||
|
in order to get rid of the above I think we need to find the corresponding cvar and ensure it is a root
|
||||||
|
in the upcoming GC. or if there is no GC scheduled, just update it directly now
|
||||||
|
*/
|
||||||
|
|
||||||
|
// TODO: not applicable here but after all entry_pts are executed the app should run a minor gc to get globals off the stack!
|
||||||
|
|
||||||
if (do_gc) {
|
if (do_gc) {
|
||||||
object buf[1]; buf[0] = value;
|
object buf[1]; buf[0] = value;
|
||||||
GC(thd, cont, buf, 1);
|
GC(thd, cont, buf, 1);
|
||||||
|
|
Loading…
Add table
Reference in a new issue