path: root/thread_pthread.h
diff options
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-19 00:01:08 (GMT)
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-08-19 00:01:08 (GMT)
commitd2afeb9445a3dc8445fa48f601a78c5ecd743ca6 (patch)
treecd66b3063bf3473dc49da879f735e88ce0436498 /thread_pthread.h
parent77038f9f826dbc988332c9ec4abf7dea57af1160 (diff)
thread_pthread.c: reset timeslice delay when uncontended
This matches the behavior of old timer thread more closely and seems to fix [Bug #14999] when limited to a single CPU. I cannot reproduce the error on a multi-core system unless I use schedtool to force affinity to a single CPU: schedtool -a 0x01 -e make test-spec \ MSPECOPT='-R1000 spec/ruby/library/conditionvariable/wait_spec.rb' While it may be good enough to pass the spec, I don't have huge degree of confidence in the interrupt handling robustness under extremely heavy load (these may be ancient bugs, though). git-svn-id: svn+ssh:// b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'thread_pthread.h')
1 files changed, 1 insertions, 0 deletions
diff --git a/thread_pthread.h b/thread_pthread.h
index 8fb1d52..c64018b 100644
--- a/thread_pthread.h
+++ b/thread_pthread.h
@@ -53,6 +53,7 @@ typedef struct rb_global_vm_lock_struct {
/* slow path */
struct list_head waitq;
const struct rb_thread_struct *timer;
+ int timer_err;
/* yield */
rb_nativethread_cond_t switch_cond;