* thread.c (RB_GC_SAVE_MACHINE_CONTEXT): start GC
by switching the thread if gc_stress == true * gc.c (ruby_gc_stress_start): dotto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
2c1a7dc85e
commit
d0914b3552
@ -1,3 +1,10 @@
|
|||||||
|
Sun May 30 01:25:48 2010 Masaya Tarui <tarui@ruby-lnag.org>
|
||||||
|
|
||||||
|
* thread.c (RB_GC_SAVE_MACHINE_CONTEXT): start GC
|
||||||
|
by switching the thread if gc_stress == true
|
||||||
|
|
||||||
|
* gc.c (ruby_gc_stress_start): dotto.
|
||||||
|
|
||||||
Sun May 30 00:02:39 2010 Yusuke Endoh <mame@tsg.ne.jp>
|
Sun May 30 00:02:39 2010 Yusuke Endoh <mame@tsg.ne.jp>
|
||||||
|
|
||||||
* gc.c (force_chain_object, rb_objspace_call_finalizer): delete
|
* gc.c (force_chain_object, rb_objspace_call_finalizer): delete
|
||||||
|
8
gc.c
8
gc.c
@ -517,6 +517,14 @@ gc_stress_get(VALUE self)
|
|||||||
return ruby_gc_stress ? Qtrue : Qfalse;
|
return ruby_gc_stress ? Qtrue : Qfalse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ruby_gc_stress_start(void)
|
||||||
|
{
|
||||||
|
rb_objspace_t *objspace = &rb_objspace;
|
||||||
|
if(ruby_gc_stress)
|
||||||
|
rb_gc();
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* call-seq:
|
* call-seq:
|
||||||
* GC.stress = bool -> bool
|
* GC.stress = bool -> bool
|
||||||
|
3
thread.c
3
thread.c
@ -99,10 +99,13 @@ static void reset_unblock_function(rb_thread_t *th, const struct rb_unblock_call
|
|||||||
|
|
||||||
static inline void blocking_region_end(rb_thread_t *th, struct rb_blocking_region_buffer *region);
|
static inline void blocking_region_end(rb_thread_t *th, struct rb_blocking_region_buffer *region);
|
||||||
|
|
||||||
|
void ruby_gc_stress_start(void);
|
||||||
|
|
||||||
#define RB_GC_SAVE_MACHINE_CONTEXT(th) \
|
#define RB_GC_SAVE_MACHINE_CONTEXT(th) \
|
||||||
do { \
|
do { \
|
||||||
rb_gc_save_machine_context(th); \
|
rb_gc_save_machine_context(th); \
|
||||||
SET_MACHINE_STACK_END(&(th)->machine_stack_end); \
|
SET_MACHINE_STACK_END(&(th)->machine_stack_end); \
|
||||||
|
ruby_gc_stress_start(); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define GVL_UNLOCK_BEGIN() do { \
|
#define GVL_UNLOCK_BEGIN() do { \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user