Skip to content

Commit a2044cd

Browse files
committed
move loading core drivers to init.lua
The commit move loading of core drivers from abstract.lua to init.lua. This will avoid duplicating a driver overriding check code in the register_driver() method and in the box.cfg wrapper.
1 parent 78525c6 commit a2044cd

File tree

2 files changed

+12
-18
lines changed

2 files changed

+12
-18
lines changed

queue/abstract.lua

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,6 @@ local function event_time(tm)
5454
return tm
5555
end
5656

57-
-- load all drivers
58-
queue.driver = {
59-
fifo = require('queue.abstract.driver.fifo'),
60-
fifottl = require('queue.abstract.driver.fifottl'),
61-
utube = require('queue.abstract.driver.utube'),
62-
utubettl = require('queue.abstract.driver.utubettl'),
63-
limfifottl = require('queue.abstract.driver.limfifottl')
64-
}
65-
6657
local function tube_release_all_tasks(tube)
6758
local prefix = ('queue: [tube "%s"] '):format(tube.name)
6859

queue/init.lua

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
local queue = nil
22

3+
-- load all core drivers
4+
local core_drivers = {
5+
fifo = require('queue.abstract.driver.fifo'),
6+
fifottl = require('queue.abstract.driver.fifottl'),
7+
utube = require('queue.abstract.driver.utube'),
8+
utubettl = require('queue.abstract.driver.utubettl'),
9+
limfifottl = require('queue.abstract.driver.limfifottl')
10+
}
11+
312
local function register_driver(driver_name, tube_ctr)
413
if type(tube_ctr.create_space) ~= 'function' or
514
type(tube_ctr.new) ~= 'function' then
@@ -10,7 +19,7 @@ local function register_driver(driver_name, tube_ctr)
1019
end
1120

1221
queue = setmetatable({
13-
driver = {},
22+
driver = core_drivers,
1423
register_driver = register_driver,
1524
}, { __index = function() print(debug.traceback()) error("Please run box.cfg{} first") end })
1625

@@ -21,16 +30,9 @@ if rawget(box, 'space') == nil then
2130

2231
local abstract = require 'queue.abstract'
2332
for name, val in pairs(abstract) do
24-
if name == 'driver' then
25-
for driver_name, driver in pairs(queue.driver) do
26-
if abstract.driver[driver_name] then
27-
error(('overriding default driver "%s"'):format(driver_name))
28-
end
29-
abstract.driver[driver_name] = driver
30-
end
31-
end
3233
rawset(queue, name, val)
3334
end
35+
abstract.driver = queue.driver
3436
setmetatable(queue, getmetatable(abstract))
3537
queue.start()
3638

@@ -39,6 +41,7 @@ if rawget(box, 'space') == nil then
3941
else
4042
queue = require 'queue.abstract'
4143
queue.register_driver = register_driver
44+
queue.driver = core_drivers
4245
queue.start()
4346
end
4447

0 commit comments

Comments
 (0)