Project

General

Profile

Misc #14431

[PATCH] thread.c: remove FP from time calculations

Added by normalperson (Eric Wong) 12 months ago. Updated 12 months ago.

Status:
Closed
Priority:
Normal
Assignee:
-
[ruby-core:85333]

Description

Pretty straightforward. Will commit soonish.

In the future, I may move towards timespec instead of timeval
since it's more accurate and might result in fewer conversions
with clock_gettime being favored.

thread.c: remove FP from time calculations

Floating-point can lead to inaccurate conversions and timeouts,
in turn causing wasted CPU cycles.  Use timeval_* functions to
perform fixed-point arithmetic, instead.  This even results in
a small code reduction.

Also available via git (generated with "git request-pull"):

The following changes since commit 7fdb4099cd6889d29fb07f9b41dbd788d1164031:

array.c: remove rb_ary_frozen_p / Array#frozen? (2018-02-01 09:20:38 +0000)

are available in the Git repository at:

git://80x24.org/ruby.git thread-nofp

for you to fetch changes up to 0b7661ad2e339bf2b95be0ed92d3674870c964d4:

thread.c: avoid FP in C-API time calculations (2018-02-02 05:16:05 +0000)


Eric Wong (4):
thread.c (rb_thread_terminate_all): eliminate double2timeval call
thread.c: extract timeval_sub from timeval_update_expire
thread.c: avoid FP for Thread#join
thread.c: avoid FP in C-API time calculations

thread.c | 188 +++++++++++++++++++++++++++++++--------------------------------
1 file changed, 91 insertions(+), 97 deletions(-)

And broken out patches:

https://80x24.org/spew/20180202051837.14192-2-e@80x24.org/raw
https://80x24.org/spew/20180202051837.14192-3-e@80x24.org/raw
https://80x24.org/spew/20180202051837.14192-4-e@80x24.org/raw
https://80x24.org/spew/20180202051837.14192-5-e@80x24.org/raw


Files

History

Updated by normalperson (Eric Wong) 12 months ago

  • Status changed from Open to Closed

committed as r62179, r62181, r62182, r62183, r62184

Also available in: Atom PDF