• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / tarantool / 23649301193
88%

Build:
DEFAULT BRANCH: master
Ran 27 Mar 2026 02:06PM UTC
Jobs 1
Files 526
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 Mar 2026 01:47PM UTC coverage: 87.682% (+0.002%) from 87.68%
23649301193

push

github

locker
lua: add module for working with application threads

The new module is named `experimental.threads`. It's available in all
application threads and has the following public methods:

 * `threads.export(func_name, func)`: exports a local Lua function so
   that it can be called with `threads.call()` from other threads.
 * `threads.call(group_name, func_name, args, opts)`: calls a function
   on a thread group. The function must be exported.
 * `threads.eval(group_name, expr, args, opts)`: executes a Lua
   expression on a thread group.
 * `threads.info()`: returns information about configured thread groups
   and the current thread (its id and group name).

Currently, the only available call/eval option is `target`, which must
be set to either `all` or `any`. It determines the set of threads on
which the function will be called: if set to `all`, the function will be
called on all threads (default); if set to `any`, the function will be
called on a thread picked randomly.

The `threads` module API works only if the threads subsystem was
configured in the config file (just setting `box.cfg.app_threads` isn't
enough), otherwise all public methods throw an error. The configuration
is set in the new top-level config section `threads`, which has the
sub-section `groups`, which in turn stores an array of configured thread
groups. Each array entry must be a map with two fields: `name` and
`size`, which define the name of the thread group and the number of
threads in it, respectively. All names must be unique. The name "tx"
must not be used because it is reserved for the main thread group,
which is created implicitly and has one thread. The threads subsystem
configuration can't be updated without a restart.

Under the hood, the `threads` module uses `net.box` connections created
over socket pairs with `box.session.new()`, one per each thread.
The socket file descriptors are passed to application threads upon
`box.cfg()` execution. The threads use `net.box.from_... (continued)

70553 of 118763 branches covered (59.41%)

106102 of 121008 relevant lines covered (87.68%)

1349037.7 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
96.55
-1.15% src/lib/core/histogram.c
1
91.68
0.0% src/lib/swim/swim.c
2
87.07
-0.46% src/box/vy_stmt.c
3
91.51
0.4% src/box/box.cc
3
92.56
-0.13% src/box/vinyl.c
3
22.66
-0.06% src/lib/uri/uri_parser.c
4
93.62
-2.13% src/box/vy_range.c
4
93.31
-1.27% src/lib/swim/swim_io.c
7
87.82
-0.41% src/box/vy_run.c
8
94.8
-1.66% src/box/vy_read_iterator.c
Jobs
ID Job ID Ran Files Coverage
1 23649301193.1 27 Mar 2026 02:06PM UTC 526
87.68
GitHub Action Run
Source Files on build 23649301193
  • Tree
  • List 526
  • Changed 22
  • Source Changed 0
  • Coverage Changed 22
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 396b0083 on github
  • Prev Build on master (#23534967673)
  • Next Build on master (#23652072840)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc