datadog-ruby_core_source 3.5.3 → 3.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/datadog-ruby_core_source.gemspec +1 -1
- data/lib/datadog/ruby_core_source/ruby-2.5.0-p0/thread_win32.h +36 -0
- data/lib/datadog/ruby_core_source/ruby-2.5.1-p57/thread_win32.h +36 -0
- data/lib/datadog/ruby_core_source/ruby-2.5.4-p155/thread_win32.h +36 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/build_assert/build_assert.h +40 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/check_type/check_type.h +63 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/container_of/container_of.h +142 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/list/list.h +788 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ccan/str/str.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/id.h +252 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/internal.h +2465 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/iseq.h +304 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/method.h +229 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/node.h +449 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ruby_assert.h +60 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/ruby_atomic.h +244 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/thread_pthread.h +75 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/thread_win32.h +36 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/vm_core.h +1902 -0
- data/lib/datadog/ruby_core_source/ruby-2.6.0-p0/vm_opts.h +70 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/build_assert/build_assert.h +40 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/check_type/check_type.h +63 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/container_of/container_of.h +142 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/list/list.h +788 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ccan/str/str.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/id.h +290 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/internal.h +2697 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/iseq.h +312 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/method.h +229 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/node.h +476 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ruby_assert.h +15 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/ruby_atomic.h +244 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/thread_pthread.h +75 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/thread_win32.h +36 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/vm_core.h +1968 -0
- data/lib/datadog/ruby_core_source/ruby-2.7.0-p0/vm_opts.h +72 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/build_assert/build_assert.h +40 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/check_type/check_type.h +63 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/container_of/container_of.h +142 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/list/list.h +788 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ccan/str/str.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/id.h +290 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/id_table.h +36 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/array.h +119 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/class.h +174 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/compilers.h +108 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/gc.h +161 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/imemo.h +243 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/serial.h +24 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/static_assert.h +17 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/vm.h +136 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal/warnings.h +17 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/internal.h +107 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/iseq.h +305 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/method.h +245 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/node.h +484 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ractor_core.h +343 -0
- data/lib/datadog/ruby_core_source/{ruby-3.4.0-p0/internal/dir.h → ruby-3.0.0-p0/ruby_assert.h} +7 -8
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/ruby_atomic.h +23 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/thread_pthread.h +115 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/thread_win32.h +61 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/vm_core.h +2023 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/vm_debug.h +116 -0
- data/lib/datadog/ruby_core_source/ruby-3.0.0-p0/vm_opts.h +73 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/build_assert/build_assert.h +40 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/check_type/check_type.h +63 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/container_of/container_of.h +142 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/list/list.h +788 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ccan/str/str.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/darray.h +198 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/id.h +293 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/id_table.h +36 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/array.h +113 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/class.h +196 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/compilers.h +107 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/gc.h +186 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/imemo.h +243 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/serial.h +23 -0
- data/lib/datadog/ruby_core_source/{ruby-3.3.5-p100/internal/loadpath.h → ruby-3.1.0-p0/internal/static_assert.h} +8 -8
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/vm.h +133 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal/warnings.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/internal.h +109 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/iseq.h +322 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/method.h +253 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/node.h +510 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ractor_core.h +346 -0
- data/lib/datadog/ruby_core_source/{ruby-3.3.0-p0/internal/dir.h → ruby-3.1.0-p0/ruby_assert.h} +6 -8
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/ruby_atomic.h +23 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/thread_pthread.h +115 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/vm_core.h +2107 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/vm_debug.h +124 -0
- data/lib/datadog/ruby_core_source/ruby-3.1.0-p0/vm_opts.h +73 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/build_assert/build_assert.h +40 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/check_type/check_type.h +63 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/container_of/container_of.h +142 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/list/list.h +789 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ccan/str/str.h +17 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/id.h +299 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/id_table.h +39 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/array.h +163 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/basic_operators.h +64 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/class.h +182 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/compilers.h +107 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/gc.h +192 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/imemo.h +242 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/serial.h +23 -0
- data/lib/datadog/ruby_core_source/{ruby-3.3.0-p0/internal/loadpath.h → ruby-3.2.0-p0/internal/static_assert.h} +8 -8
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/vm.h +134 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal/warnings.h +16 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/internal.h +113 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/iseq.h +329 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/method.h +254 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/node.h +514 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ractor_core.h +342 -0
- data/lib/datadog/ruby_core_source/{ruby-3.3.5-p100/internal/dir.h → ruby-3.2.0-p0/ruby_assert.h} +6 -8
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/ruby_atomic.h +23 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/shape.h +232 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/thread_none.h +20 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/thread_pthread.h +133 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/vm_core.h +2106 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/vm_debug.h +122 -0
- data/lib/datadog/ruby_core_source/ruby-3.2.0-p0/vm_opts.h +73 -0
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/constant.h +53 -0
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/debug_counter.h +423 -0
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/vm_sync.h +137 -0
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/constant.h +53 -0
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/debug_counter.h +423 -0
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/vm_sync.h +137 -0
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/constant.h +53 -0
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/debug_counter.h +423 -0
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/vm_sync.h +137 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/constant.h +53 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/debug_counter.h +425 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/vm_sync.h +160 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/constant.h +53 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/debug_counter.h +426 -0
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/vm_sync.h +160 -0
- data/lib/datadog/ruby_core_source/version.rb +1 -1
- metadata +140 -226
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/bignum.h +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/bits.h +0 -568
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/cmdlineopt.h +0 -65
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/compar.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/compile.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/complex.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/cont.h +0 -35
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/enc.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/encoding.h +0 -35
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/enum.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/enumerator.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/error.h +0 -216
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/eval.h +0 -32
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/file.h +0 -38
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/fixnum.h +0 -184
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/hash.h +0 -191
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/inits.h +0 -50
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/io.h +0 -137
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/load.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/math.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/missing.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/numeric.h +0 -273
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/object.h +0 -60
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/parse.h +0 -108
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/proc.h +0 -30
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/process.h +0 -124
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/ractor.h +0 -6
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/random.h +0 -17
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/range.h +0 -40
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/rational.h +0 -71
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/re.h +0 -28
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/ruby_parser.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/sanitizers.h +0 -186
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/signal.h +0 -25
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/string.h +0 -159
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/struct.h +0 -127
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/symbol.h +0 -45
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/thread.h +0 -78
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/time.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/transcode.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/internal/util.h +0 -27
- data/lib/datadog/ruby_core_source/ruby-3.3.0-p0/prism/extension.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/bignum.h +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/bits.h +0 -568
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/cmdlineopt.h +0 -65
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/compar.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/compile.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/complex.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/cont.h +0 -35
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/enc.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/encoding.h +0 -35
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/enum.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/enumerator.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/error.h +0 -216
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/eval.h +0 -33
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/file.h +0 -38
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/fixnum.h +0 -184
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/hash.h +0 -191
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/inits.h +0 -50
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/io.h +0 -137
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/load.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/math.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/missing.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/numeric.h +0 -273
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/object.h +0 -62
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/parse.h +0 -108
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/proc.h +0 -30
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/process.h +0 -124
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/ractor.h +0 -6
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/random.h +0 -17
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/range.h +0 -40
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/rational.h +0 -71
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/re.h +0 -28
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/ruby_parser.h +0 -69
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/sanitizers.h +0 -186
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/signal.h +0 -25
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/string.h +0 -160
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/struct.h +0 -127
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/symbol.h +0 -45
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/thread.h +0 -78
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/time.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/transcode.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/internal/util.h +0 -27
- data/lib/datadog/ruby_core_source/ruby-3.3.5-p100/prism/extension.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/bignum.h +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/bits.h +0 -650
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/cmdlineopt.h +0 -65
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/compar.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/compile.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/complex.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/cont.h +0 -35
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/enc.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/encoding.h +0 -38
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/enum.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/enumerator.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/error.h +0 -244
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/eval.h +0 -33
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/file.h +0 -38
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/fixnum.h +0 -185
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/hash.h +0 -192
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/inits.h +0 -47
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/io.h +0 -143
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/load.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/loadpath.h +0 -16
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/math.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/missing.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/numeric.h +0 -274
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/object.h +0 -63
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/parse.h +0 -130
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/proc.h +0 -31
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/process.h +0 -124
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/ractor.h +0 -10
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/random.h +0 -17
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/range.h +0 -40
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/rational.h +0 -71
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/re.h +0 -28
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/ruby_parser.h +0 -102
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/signal.h +0 -24
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/st.h +0 -11
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/string.h +0 -198
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/struct.h +0 -127
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/symbol.h +0 -45
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/thread.h +0 -108
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/time.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/transcode.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/internal/util.h +0 -27
- data/lib/datadog/ruby_core_source/ruby-3.4.0-p0/prism/extension.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bignum.h +0 -256
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/bits.h +0 -647
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/cmdlineopt.h +0 -64
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/compar.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/compile.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/complex.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/concurrent_set.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/cont.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/dir.h +0 -16
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/enc.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/encoding.h +0 -39
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/enum.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/enumerator.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/error.h +0 -251
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/eval.h +0 -43
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/file.h +0 -38
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/fixnum.h +0 -185
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/hash.h +0 -194
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/inits.h +0 -51
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/io.h +0 -163
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/load.h +0 -20
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/loadpath.h +0 -16
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/math.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/missing.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/numeric.h +0 -323
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/object.h +0 -63
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/parse.h +0 -131
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/proc.h +0 -30
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/process.h +0 -124
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/ractor.h +0 -10
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/random.h +0 -17
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/range.h +0 -40
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/rational.h +0 -71
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/re.h +0 -33
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/ruby_parser.h +0 -102
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/signal.h +0 -25
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/st.h +0 -11
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/string.h +0 -203
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/struct.h +0 -160
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/symbol.h +0 -46
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/thread.h +0 -112
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/time.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/transcode.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/internal/util.h +0 -27
- data/lib/datadog/ruby_core_source/ruby-4.0.0-p0/prism/extension.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/bignum.h +0 -256
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/bits.h +0 -647
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/cmdlineopt.h +0 -64
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/compar.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/compile.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/complex.h +0 -29
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/concurrent_set.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/cont.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/dir.h +0 -16
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/enc.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/encoding.h +0 -39
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/enum.h +0 -18
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/enumerator.h +0 -21
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/error.h +0 -251
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/eval.h +0 -43
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/file.h +0 -38
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/fixnum.h +0 -185
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/hash.h +0 -194
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/inits.h +0 -51
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/io.h +0 -163
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/load.h +0 -20
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/loadpath.h +0 -16
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/math.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/missing.h +0 -19
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/numeric.h +0 -323
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/object.h +0 -63
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/parse.h +0 -131
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/proc.h +0 -30
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/process.h +0 -124
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/ractor.h +0 -10
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/random.h +0 -17
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/range.h +0 -40
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/rational.h +0 -73
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/re.h +0 -33
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/ruby_parser.h +0 -102
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/signal.h +0 -25
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/st.h +0 -11
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/string.h +0 -203
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/struct.h +0 -160
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/symbol.h +0 -46
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/thread.h +0 -112
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/time.h +0 -34
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/transcode.h +0 -23
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/internal/util.h +0 -27
- data/lib/datadog/ruby_core_source/ruby-4.0.6-p0/prism/extension.h +0 -19
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
#ifndef RUBY_ATOMIC_H
|
|
2
|
+
#define RUBY_ATOMIC_H
|
|
3
|
+
|
|
4
|
+
#if 0
|
|
5
|
+
#elif defined HAVE_GCC_ATOMIC_BUILTINS
|
|
6
|
+
typedef unsigned int rb_atomic_t;
|
|
7
|
+
# define ATOMIC_SET(var, val) (void)__atomic_exchange_n(&(var), (val), __ATOMIC_SEQ_CST)
|
|
8
|
+
# define ATOMIC_INC(var) __atomic_fetch_add(&(var), 1, __ATOMIC_SEQ_CST)
|
|
9
|
+
# define ATOMIC_DEC(var) __atomic_fetch_sub(&(var), 1, __ATOMIC_SEQ_CST)
|
|
10
|
+
# define ATOMIC_OR(var, val) __atomic_fetch_or(&(var), (val), __ATOMIC_SEQ_CST)
|
|
11
|
+
# define ATOMIC_EXCHANGE(var, val) __atomic_exchange_n(&(var), (val), __ATOMIC_SEQ_CST)
|
|
12
|
+
# define ATOMIC_CAS(var, oldval, newval) RB_GNUC_EXTENSION_BLOCK( \
|
|
13
|
+
__typeof__(var) oldvaldup = (oldval); /* oldval should not be modified */ \
|
|
14
|
+
__atomic_compare_exchange_n(&(var), &oldvaldup, (newval), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); \
|
|
15
|
+
oldvaldup )
|
|
16
|
+
|
|
17
|
+
# define ATOMIC_SIZE_ADD(var, val) __atomic_fetch_add(&(var), (val), __ATOMIC_SEQ_CST)
|
|
18
|
+
# define ATOMIC_SIZE_SUB(var, val) __atomic_fetch_sub(&(var), (val), __ATOMIC_SEQ_CST)
|
|
19
|
+
|
|
20
|
+
# define RUBY_ATOMIC_GENERIC_MACRO 1
|
|
21
|
+
|
|
22
|
+
#elif defined HAVE_GCC_SYNC_BUILTINS
|
|
23
|
+
/* @shyouhei hack to support atomic operations in case of gcc. Gcc
|
|
24
|
+
* has its own pseudo-insns to support them. See info, or
|
|
25
|
+
* http://gcc.gnu.org/onlinedocs/gcc/Atomic-Builtins.html */
|
|
26
|
+
|
|
27
|
+
typedef unsigned int rb_atomic_t; /* Anything OK */
|
|
28
|
+
# define ATOMIC_SET(var, val) (void)__sync_lock_test_and_set(&(var), (val))
|
|
29
|
+
# define ATOMIC_INC(var) __sync_fetch_and_add(&(var), 1)
|
|
30
|
+
# define ATOMIC_DEC(var) __sync_fetch_and_sub(&(var), 1)
|
|
31
|
+
# define ATOMIC_OR(var, val) __sync_fetch_and_or(&(var), (val))
|
|
32
|
+
# define ATOMIC_EXCHANGE(var, val) __sync_lock_test_and_set(&(var), (val))
|
|
33
|
+
# define ATOMIC_CAS(var, oldval, newval) __sync_val_compare_and_swap(&(var), (oldval), (newval))
|
|
34
|
+
|
|
35
|
+
# define ATOMIC_SIZE_ADD(var, val) __sync_fetch_and_add(&(var), (val))
|
|
36
|
+
# define ATOMIC_SIZE_SUB(var, val) __sync_fetch_and_sub(&(var), (val))
|
|
37
|
+
|
|
38
|
+
# define RUBY_ATOMIC_GENERIC_MACRO 1
|
|
39
|
+
|
|
40
|
+
#elif defined _WIN32
|
|
41
|
+
#if defined _MSC_VER && _MSC_VER > 1200
|
|
42
|
+
#pragma intrinsic(_InterlockedOr)
|
|
43
|
+
#endif
|
|
44
|
+
typedef LONG rb_atomic_t;
|
|
45
|
+
|
|
46
|
+
# define ATOMIC_SET(var, val) InterlockedExchange(&(var), (val))
|
|
47
|
+
# define ATOMIC_INC(var) InterlockedIncrement(&(var))
|
|
48
|
+
# define ATOMIC_DEC(var) InterlockedDecrement(&(var))
|
|
49
|
+
#if defined __GNUC__
|
|
50
|
+
# define ATOMIC_OR(var, val) __asm__("lock\n\t" "orl\t%1, %0" : "=m"(var) : "Ir"(val))
|
|
51
|
+
#elif defined _MSC_VER && _MSC_VER <= 1200
|
|
52
|
+
# define ATOMIC_OR(var, val) rb_w32_atomic_or(&(var), (val))
|
|
53
|
+
static inline void
|
|
54
|
+
rb_w32_atomic_or(volatile rb_atomic_t *var, rb_atomic_t val)
|
|
55
|
+
{
|
|
56
|
+
#ifdef _M_IX86
|
|
57
|
+
__asm mov eax, var;
|
|
58
|
+
__asm mov ecx, val;
|
|
59
|
+
__asm lock or [eax], ecx;
|
|
60
|
+
#else
|
|
61
|
+
#error unsupported architecture
|
|
62
|
+
#endif
|
|
63
|
+
}
|
|
64
|
+
#else
|
|
65
|
+
# define ATOMIC_OR(var, val) _InterlockedOr(&(var), (val))
|
|
66
|
+
#endif
|
|
67
|
+
# define ATOMIC_EXCHANGE(var, val) InterlockedExchange(&(var), (val))
|
|
68
|
+
# define ATOMIC_CAS(var, oldval, newval) InterlockedCompareExchange(&(var), (newval), (oldval))
|
|
69
|
+
# if defined _MSC_VER && _MSC_VER <= 1200
|
|
70
|
+
static inline rb_atomic_t
|
|
71
|
+
rb_w32_atomic_cas(volatile rb_atomic_t *var, rb_atomic_t oldval, rb_atomic_t newval)
|
|
72
|
+
{
|
|
73
|
+
return (rb_atomic_t)InterlockedCompareExchange((PVOID *)var, (PVOID)newval, (PVOID)oldval);
|
|
74
|
+
}
|
|
75
|
+
# undef ATOMIC_CAS
|
|
76
|
+
# define ATOMIC_CAS(var, oldval, newval) rb_w32_atomic_cas(&(var), (oldval), (newval))
|
|
77
|
+
# endif
|
|
78
|
+
# ifdef _M_AMD64
|
|
79
|
+
# define ATOMIC_SIZE_ADD(var, val) InterlockedExchangeAdd64((LONG_LONG *)&(var), (val))
|
|
80
|
+
# define ATOMIC_SIZE_SUB(var, val) InterlockedExchangeAdd64((LONG_LONG *)&(var), -(LONG)(val))
|
|
81
|
+
# define ATOMIC_SIZE_INC(var) InterlockedIncrement64(&(var))
|
|
82
|
+
# define ATOMIC_SIZE_DEC(var) InterlockedDecrement64(&(var))
|
|
83
|
+
# define ATOMIC_SIZE_EXCHANGE(var, val) InterlockedExchange64(&(var), (val))
|
|
84
|
+
# define ATOMIC_SIZE_CAS(var, oldval, newval) InterlockedCompareExchange64(&(var), (newval), (oldval))
|
|
85
|
+
# else
|
|
86
|
+
# define ATOMIC_SIZE_ADD(var, val) InterlockedExchangeAdd((LONG *)&(var), (val))
|
|
87
|
+
# define ATOMIC_SIZE_SUB(var, val) InterlockedExchangeAdd((LONG *)&(var), -(LONG)(val))
|
|
88
|
+
# define ATOMIC_SIZE_INC(var) InterlockedIncrement((LONG *)&(var))
|
|
89
|
+
# define ATOMIC_SIZE_DEC(var) InterlockedDecrement((LONG *)&(var))
|
|
90
|
+
# define ATOMIC_SIZE_EXCHANGE(var, val) InterlockedExchange((LONG *)&(var), (val))
|
|
91
|
+
# endif
|
|
92
|
+
|
|
93
|
+
# ifdef InterlockedExchangePointer
|
|
94
|
+
# define ATOMIC_PTR_EXCHANGE(var, val) InterlockedExchangePointer((PVOID volatile *)&(var), (PVOID)(val))
|
|
95
|
+
# endif /* See below for definitions of other situations */
|
|
96
|
+
|
|
97
|
+
#elif defined(__sun) && defined(HAVE_ATOMIC_H)
|
|
98
|
+
#include <atomic.h>
|
|
99
|
+
typedef unsigned int rb_atomic_t;
|
|
100
|
+
|
|
101
|
+
# define ATOMIC_SET(var, val) (void)atomic_swap_uint(&(var), (val))
|
|
102
|
+
# define ATOMIC_INC(var) atomic_inc_uint(&(var))
|
|
103
|
+
# define ATOMIC_DEC(var) atomic_dec_uint(&(var))
|
|
104
|
+
# define ATOMIC_OR(var, val) atomic_or_uint(&(var), (val))
|
|
105
|
+
# define ATOMIC_EXCHANGE(var, val) atomic_swap_uint(&(var), (val))
|
|
106
|
+
# define ATOMIC_CAS(var, oldval, newval) atomic_cas_uint(&(var), (oldval), (newval))
|
|
107
|
+
|
|
108
|
+
# if SIZEOF_SIZE_T == SIZEOF_LONG
|
|
109
|
+
# define ATOMIC_SIZE_ADD(var, val) atomic_add_long(&(var), (val))
|
|
110
|
+
# define ATOMIC_SIZE_SUB(var, val) atomic_add_long(&(var), -(val))
|
|
111
|
+
# define ATOMIC_SIZE_INC(var) atomic_inc_ulong(&(var))
|
|
112
|
+
# define ATOMIC_SIZE_DEC(var) atomic_dec_ulong(&(var))
|
|
113
|
+
# define ATOMIC_SIZE_EXCHANGE(var, val) atomic_swap_ulong(&(var), (val))
|
|
114
|
+
# define ATOMIC_SIZE_CAS(var, oldval, val) atomic_cas_ulong(&(var), (oldval), (val))
|
|
115
|
+
# else
|
|
116
|
+
# define ATOMIC_SIZE_ADD(var, val) atomic_add_int(&(var), (val))
|
|
117
|
+
# define ATOMIC_SIZE_SUB(var, val) atomic_add_int(&(var), -(val))
|
|
118
|
+
# define ATOMIC_SIZE_INC(var) atomic_inc_uint(&(var))
|
|
119
|
+
# define ATOMIC_SIZE_DEC(var) atomic_dec_uint(&(var))
|
|
120
|
+
# define ATOMIC_SIZE_EXCHANGE(var, val) atomic_swap_uint(&(var), (val))
|
|
121
|
+
# endif
|
|
122
|
+
|
|
123
|
+
#else
|
|
124
|
+
typedef int rb_atomic_t;
|
|
125
|
+
#define NEED_RUBY_ATOMIC_OPS
|
|
126
|
+
extern rb_atomic_t ruby_atomic_exchange(rb_atomic_t *ptr, rb_atomic_t val);
|
|
127
|
+
extern rb_atomic_t ruby_atomic_compare_and_swap(rb_atomic_t *ptr,
|
|
128
|
+
rb_atomic_t cmp,
|
|
129
|
+
rb_atomic_t newval);
|
|
130
|
+
|
|
131
|
+
# define ATOMIC_SET(var, val) (void)((var) = (val))
|
|
132
|
+
# define ATOMIC_INC(var) ((var)++)
|
|
133
|
+
# define ATOMIC_DEC(var) ((var)--)
|
|
134
|
+
# define ATOMIC_OR(var, val) ((var) |= (val))
|
|
135
|
+
# define ATOMIC_EXCHANGE(var, val) ruby_atomic_exchange(&(var), (val))
|
|
136
|
+
# define ATOMIC_CAS(var, oldval, newval) ruby_atomic_compare_and_swap(&(var), (oldval), (newval))
|
|
137
|
+
|
|
138
|
+
# define ATOMIC_SIZE_ADD(var, val) (void)((var) += (val))
|
|
139
|
+
# define ATOMIC_SIZE_SUB(var, val) (void)((var) -= (val))
|
|
140
|
+
# define ATOMIC_SIZE_EXCHANGE(var, val) ruby_atomic_size_exchange(&(var), (val))
|
|
141
|
+
static inline size_t
|
|
142
|
+
ruby_atomic_size_exchange(size_t *ptr, size_t val)
|
|
143
|
+
{
|
|
144
|
+
size_t old = *ptr;
|
|
145
|
+
*ptr = val;
|
|
146
|
+
return old;
|
|
147
|
+
}
|
|
148
|
+
#endif
|
|
149
|
+
|
|
150
|
+
#ifndef ATOMIC_SIZE_INC
|
|
151
|
+
# define ATOMIC_SIZE_INC(var) ATOMIC_INC(var)
|
|
152
|
+
#endif
|
|
153
|
+
|
|
154
|
+
#ifndef ATOMIC_SIZE_DEC
|
|
155
|
+
# define ATOMIC_SIZE_DEC(var) ATOMIC_DEC(var)
|
|
156
|
+
#endif
|
|
157
|
+
|
|
158
|
+
#ifndef ATOMIC_SIZE_EXCHANGE
|
|
159
|
+
# define ATOMIC_SIZE_EXCHANGE(var, val) ATOMIC_EXCHANGE(var, val)
|
|
160
|
+
#endif
|
|
161
|
+
|
|
162
|
+
#ifndef ATOMIC_SIZE_CAS
|
|
163
|
+
# define ATOMIC_SIZE_CAS(var, oldval, val) ATOMIC_CAS(var, oldval, val)
|
|
164
|
+
#endif
|
|
165
|
+
|
|
166
|
+
#if RUBY_ATOMIC_GENERIC_MACRO
|
|
167
|
+
# ifndef ATOMIC_PTR_EXCHANGE
|
|
168
|
+
# define ATOMIC_PTR_EXCHANGE(var, val) ATOMIC_EXCHANGE(var, val)
|
|
169
|
+
# endif
|
|
170
|
+
|
|
171
|
+
# ifndef ATOMIC_PTR_CAS
|
|
172
|
+
# define ATOMIC_PTR_CAS(var, oldval, newval) ATOMIC_CAS(var, oldval, newval)
|
|
173
|
+
# endif
|
|
174
|
+
|
|
175
|
+
# ifndef ATOMIC_VALUE_EXCHANGE
|
|
176
|
+
# define ATOMIC_VALUE_EXCHANGE(var, val) ATOMIC_EXCHANGE(var, val)
|
|
177
|
+
# endif
|
|
178
|
+
|
|
179
|
+
# ifndef ATOMIC_VALUE_CAS
|
|
180
|
+
# define ATOMIC_VALUE_CAS(var, oldval, val) ATOMIC_CAS(var, oldval, val)
|
|
181
|
+
# endif
|
|
182
|
+
#endif
|
|
183
|
+
|
|
184
|
+
#ifndef ATOMIC_PTR_EXCHANGE
|
|
185
|
+
# if SIZEOF_VOIDP == SIZEOF_SIZE_T
|
|
186
|
+
# define ATOMIC_PTR_EXCHANGE(var, val) (void *)ATOMIC_SIZE_EXCHANGE(*(size_t *)&(var), (size_t)(val))
|
|
187
|
+
# else
|
|
188
|
+
# define ATOMIC_PTR_EXCHANGE(var, val) ruby_atomic_ptr_exchange((const void **)&(var), (val))
|
|
189
|
+
static inline void *
|
|
190
|
+
ruby_atomic_ptr_exchange(const void **ptr, const void *val)
|
|
191
|
+
{
|
|
192
|
+
const void *const old = *ptr;
|
|
193
|
+
*ptr = val;
|
|
194
|
+
return (void *)old;
|
|
195
|
+
}
|
|
196
|
+
# endif
|
|
197
|
+
#endif
|
|
198
|
+
|
|
199
|
+
#ifndef ATOMIC_PTR_CAS
|
|
200
|
+
# if SIZEOF_VOIDP == SIZEOF_SIZE_T
|
|
201
|
+
# define ATOMIC_PTR_CAS(var, oldval, val) (void *)ATOMIC_SIZE_CAS(*(size_t *)&(var), (size_t)(oldval), (size_t)(val))
|
|
202
|
+
# else
|
|
203
|
+
# define ATOMIC_PTR_CAS(var, oldval, val) ruby_atomic_ptr_cas(&(var), (oldval), (val))
|
|
204
|
+
static inline void *
|
|
205
|
+
ruby_atomic_ptr_cas(const void **ptr, const void *oldval, const void *val)
|
|
206
|
+
{
|
|
207
|
+
const void *const old = *ptr;
|
|
208
|
+
if (old == oldval) *ptr = val;
|
|
209
|
+
return (void *)old;
|
|
210
|
+
}
|
|
211
|
+
# endif
|
|
212
|
+
#endif
|
|
213
|
+
|
|
214
|
+
#ifndef ATOMIC_VALUE_EXCHANGE
|
|
215
|
+
# if SIZEOF_VALUE == SIZEOF_SIZE_T
|
|
216
|
+
# define ATOMIC_VALUE_EXCHANGE(var, val) ATOMIC_SIZE_EXCHANGE(*(size_t *)&(var), (size_t)(val))
|
|
217
|
+
# else
|
|
218
|
+
# define ATOMIC_VALUE_EXCHANGE(var, val) ruby_atomic_value_exchange(&(var), (val))
|
|
219
|
+
static inline VALUE
|
|
220
|
+
ruby_atomic_value_exchange(VALUE *ptr, VALUE val)
|
|
221
|
+
{
|
|
222
|
+
const VALUE old = *ptr;
|
|
223
|
+
*ptr = val;
|
|
224
|
+
return old;
|
|
225
|
+
}
|
|
226
|
+
# endif
|
|
227
|
+
#endif
|
|
228
|
+
|
|
229
|
+
#ifndef ATOMIC_VALUE_CAS
|
|
230
|
+
# if SIZEOF_VALUE == SIZEOF_SIZE_T
|
|
231
|
+
# define ATOMIC_VALUE_CAS(var, oldval, val) ATOMIC_SIZE_CAS(*(size_t *)&(var), (size_t)(oldval), (size_t)(val))
|
|
232
|
+
# else
|
|
233
|
+
# define ATOMIC_VALUE_CAS(var, oldval, val) ruby_atomic_value_cas(&(var), (oldval), (val))
|
|
234
|
+
static inline VALUE
|
|
235
|
+
ruby_atomic_value_cas(VALUE *ptr, VALUE oldval, VALUE val)
|
|
236
|
+
{
|
|
237
|
+
const VALUE old = *ptr;
|
|
238
|
+
if (old == oldval) *ptr = val;
|
|
239
|
+
return old;
|
|
240
|
+
}
|
|
241
|
+
# endif
|
|
242
|
+
#endif
|
|
243
|
+
|
|
244
|
+
#endif /* RUBY_ATOMIC_H */
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
|
|
3
|
+
thread_pthread.h -
|
|
4
|
+
|
|
5
|
+
$Author$
|
|
6
|
+
|
|
7
|
+
Copyright (C) 2004-2007 Koichi Sasada
|
|
8
|
+
|
|
9
|
+
**********************************************************************/
|
|
10
|
+
|
|
11
|
+
#ifndef RUBY_THREAD_PTHREAD_H
|
|
12
|
+
#define RUBY_THREAD_PTHREAD_H
|
|
13
|
+
|
|
14
|
+
#ifdef HAVE_PTHREAD_NP_H
|
|
15
|
+
#include <pthread_np.h>
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
#define RB_NATIVETHREAD_LOCK_INIT PTHREAD_MUTEX_INITIALIZER
|
|
19
|
+
#define RB_NATIVETHREAD_COND_INIT PTHREAD_COND_INITIALIZER
|
|
20
|
+
|
|
21
|
+
typedef pthread_cond_t rb_nativethread_cond_t;
|
|
22
|
+
|
|
23
|
+
typedef struct native_thread_data_struct {
|
|
24
|
+
union {
|
|
25
|
+
struct list_node ubf;
|
|
26
|
+
struct list_node gvl;
|
|
27
|
+
} node;
|
|
28
|
+
#if defined(__GLIBC__) || defined(__FreeBSD__)
|
|
29
|
+
union
|
|
30
|
+
#else
|
|
31
|
+
/*
|
|
32
|
+
* assume the platform condvars are badly implemented and have a
|
|
33
|
+
* "memory" of which mutex they're associated with
|
|
34
|
+
*/
|
|
35
|
+
struct
|
|
36
|
+
#endif
|
|
37
|
+
{
|
|
38
|
+
rb_nativethread_cond_t intr; /* th->interrupt_lock */
|
|
39
|
+
rb_nativethread_cond_t gvlq; /* vm->gvl.lock */
|
|
40
|
+
} cond;
|
|
41
|
+
} native_thread_data_t;
|
|
42
|
+
|
|
43
|
+
#undef except
|
|
44
|
+
#undef try
|
|
45
|
+
#undef leave
|
|
46
|
+
#undef finally
|
|
47
|
+
|
|
48
|
+
typedef struct rb_global_vm_lock_struct {
|
|
49
|
+
/* fast path */
|
|
50
|
+
const struct rb_thread_struct *owner;
|
|
51
|
+
rb_nativethread_lock_t lock; /* AKA vm->gvl.lock */
|
|
52
|
+
|
|
53
|
+
/*
|
|
54
|
+
* slow path, protected by vm->gvl.lock
|
|
55
|
+
* - @waitq - FIFO queue of threads waiting for GVL
|
|
56
|
+
* - @timer - it handles timeslices for @owner. It is any one thread
|
|
57
|
+
* in @waitq, there is no @timer if @waitq is empty, but always
|
|
58
|
+
* a @timer if @waitq has entries
|
|
59
|
+
* - @timer_err tracks timeslice limit, the timeslice only resets
|
|
60
|
+
* when pthread_cond_timedwait returns ETIMEDOUT, so frequent
|
|
61
|
+
* switching between contended/uncontended GVL won't reset the
|
|
62
|
+
* timer.
|
|
63
|
+
*/
|
|
64
|
+
struct list_head waitq; /* <=> native_thread_data_t.node.ubf */
|
|
65
|
+
const struct rb_thread_struct *timer;
|
|
66
|
+
int timer_err;
|
|
67
|
+
|
|
68
|
+
/* yield */
|
|
69
|
+
rb_nativethread_cond_t switch_cond;
|
|
70
|
+
rb_nativethread_cond_t switch_wait_cond;
|
|
71
|
+
int need_yield;
|
|
72
|
+
int wait_yield;
|
|
73
|
+
} rb_global_vm_lock_t;
|
|
74
|
+
|
|
75
|
+
#endif /* RUBY_THREAD_PTHREAD_H */
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**********************************************************************
|
|
2
|
+
|
|
3
|
+
thread_win32.h -
|
|
4
|
+
|
|
5
|
+
$Author$
|
|
6
|
+
|
|
7
|
+
Copyright (C) 2004-2007 Koichi Sasada
|
|
8
|
+
|
|
9
|
+
**********************************************************************/
|
|
10
|
+
|
|
11
|
+
/* interface */
|
|
12
|
+
#ifndef RUBY_THREAD_WIN32_H
|
|
13
|
+
#define RUBY_THREAD_WIN32_H
|
|
14
|
+
|
|
15
|
+
# ifdef __CYGWIN__
|
|
16
|
+
# undef _WIN32
|
|
17
|
+
# endif
|
|
18
|
+
|
|
19
|
+
WINBASEAPI BOOL WINAPI
|
|
20
|
+
TryEnterCriticalSection(IN OUT LPCRITICAL_SECTION lpCriticalSection);
|
|
21
|
+
|
|
22
|
+
typedef struct rb_thread_cond_struct {
|
|
23
|
+
struct cond_event_entry *next;
|
|
24
|
+
struct cond_event_entry *prev;
|
|
25
|
+
} rb_nativethread_cond_t;
|
|
26
|
+
|
|
27
|
+
typedef struct native_thread_data_struct {
|
|
28
|
+
HANDLE interrupt_event;
|
|
29
|
+
} native_thread_data_t;
|
|
30
|
+
|
|
31
|
+
typedef struct rb_global_vm_lock_struct {
|
|
32
|
+
HANDLE lock;
|
|
33
|
+
} rb_global_vm_lock_t;
|
|
34
|
+
|
|
35
|
+
#endif /* RUBY_THREAD_WIN32_H */
|
|
36
|
+
|