Hi, Sergey! thanks for the patch! See my comments. Sergey On 10/24/25 13:50, Sergey Kaplun wrote: > This patch adjusts the aforementioned test to use the benchmark > framework introduced before. The default arguments are adjusted > according to the file. The arguments to the script still > can be provided in the command line run. > --- > perf/LuaJIT-benches/coroutine-ring.lua | 45 ++++++++++++++++---------- > 1 file changed, 28 insertions(+), 17 deletions(-) > > diff --git a/perf/LuaJIT-benches/coroutine-ring.lua b/perf/LuaJIT-benches/coroutine-ring.lua > index 1e8c5ef6..1b86a5ba 100644 > --- a/perf/LuaJIT-benches/coroutine-ring.lua > +++ b/perf/LuaJIT-benches/coroutine-ring.lua > @@ -1,3 +1,5 @@ > +local bench = require("bench").new(arg) > + > -- The Computer Language Benchmarks Game > --http://shootout.alioth.debian.org/ > -- contributed by Sam Roberts > @@ -7,7 +9,6 @@ local n = tonumber(arg and arg[1]) or 2e7 > > -- fixed size pool > local poolsize = 503 > -local threads = {} > > -- cache these to avoid global environment lookups > local create = coroutine.create > @@ -15,7 +16,6 @@ local resume = coroutine.resume > local yield = coroutine.yield > > local id = 1 > -local token = 0 > local ok > > local body = function(token) > @@ -24,19 +24,30 @@ local body = function(token) > end > end > > --- create all threads > -for id = 1, poolsize do > - threads[id] = create(body) > -end > - > --- send the token > -repeat > - if id == poolsize then > - id = 1 > - else > - id = id + 1 > - end > - ok, token = resume(threads[id], token) > -until token == n > +bench:add({ > + name = "coroutine_ring", > + payload = function() > + local token = 0 a single whitespace before "=" > + -- create all threads First letter is in uppercase and a dot at the end. > + local threads = {} a single whitespace before "=" > + for id = 1, poolsize do > + threads[id] = create(body) > + end > + > + -- send the token First letter is in uppercase and a dot at the end. > + repeat > + if id == poolsize then > + id = 1 > + else > + id = id + 1 > + end > + ok, token = resume(threads[id], token) > + until token == n > + return id > + end, > + checker = function(id) return id == (n % poolsize + 1) end, > + items = n, > +}) > + > +bench:run_and_report() > > -io.write(id, "\n")