vm: separate 'current_gc_p' from 'current_gc'
The 'current_gc' handle doesn't need to be volatile, just the state of GC-nessdb4
							parent
							
								
									4d39e59054
								
							
						
					
					
						commit
						73845fdad9
					
				| 
						 | 
				
			
			@ -155,6 +155,7 @@ void factor_vm::gc(gc_op op, cell requested_size, bool trace_contexts_p)
 | 
			
		|||
	assert(!data->high_fragmentation_p());
 | 
			
		||||
 | 
			
		||||
	current_gc = new gc_state(op,this);
 | 
			
		||||
	atomic::store(¤t_gc_p, true);
 | 
			
		||||
 | 
			
		||||
	/* Keep trying to GC higher and higher generations until we don't run
 | 
			
		||||
	out of space in the target generation. */
 | 
			
		||||
| 
						 | 
				
			
			@ -217,6 +218,7 @@ void factor_vm::gc(gc_op op, cell requested_size, bool trace_contexts_p)
 | 
			
		|||
 | 
			
		||||
	end_gc();
 | 
			
		||||
 | 
			
		||||
	atomic::store(¤t_gc_p, false);
 | 
			
		||||
	delete current_gc;
 | 
			
		||||
	current_gc = NULL;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,8 @@ factor_vm::factor_vm() :
 | 
			
		|||
	safepoint_fep_p(false),
 | 
			
		||||
	gc_off(false),
 | 
			
		||||
	current_gc(NULL),
 | 
			
		||||
	current_gc_p(false),
 | 
			
		||||
	current_jit_p(false),
 | 
			
		||||
	gc_events(NULL),
 | 
			
		||||
	fep_p(false),
 | 
			
		||||
	fep_help_was_shown(false),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,7 +91,11 @@ struct factor_vm
 | 
			
		|||
	callback_heap *callbacks;
 | 
			
		||||
 | 
			
		||||
	/* Only set if we're performing a GC */
 | 
			
		||||
	volatile gc_state *current_gc;
 | 
			
		||||
	gc_state *current_gc;
 | 
			
		||||
	volatile cell current_gc_p;
 | 
			
		||||
 | 
			
		||||
	/* Set if we're in the jit */
 | 
			
		||||
	volatile cell current_jit_p;
 | 
			
		||||
 | 
			
		||||
	/* Mark stack */
 | 
			
		||||
	std::vector<cell> mark_stack;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue