diff options
Diffstat (limited to 'src/keeper.h')
-rw-r--r-- | src/keeper.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/keeper.h b/src/keeper.h index 30de3a6..ef86f94 100644 --- a/src/keeper.h +++ b/src/keeper.h | |||
@@ -18,10 +18,12 @@ extern "C" { | |||
18 | enum class LookupMode; | 18 | enum class LookupMode; |
19 | class Universe; | 19 | class Universe; |
20 | 20 | ||
21 | using KeeperState = Unique<lua_State*>; | ||
22 | |||
21 | struct Keeper | 23 | struct Keeper |
22 | { | 24 | { |
23 | std::mutex m_mutex; | 25 | std::mutex m_mutex; |
24 | lua_State* L{ nullptr }; | 26 | KeeperState L{ nullptr }; |
25 | // int count; | 27 | // int count; |
26 | }; | 28 | }; |
27 | 29 | ||
@@ -43,7 +45,7 @@ void close_keepers(Universe* U); | |||
43 | [[nodiscard]] Keeper* keeper_acquire(Keepers* keepers_, uintptr_t magic_); | 45 | [[nodiscard]] Keeper* keeper_acquire(Keepers* keepers_, uintptr_t magic_); |
44 | void keeper_release(Keeper* K_); | 46 | void keeper_release(Keeper* K_); |
45 | void keeper_toggle_nil_sentinels(lua_State* L, int val_i_, LookupMode const mode_); | 47 | void keeper_toggle_nil_sentinels(lua_State* L, int val_i_, LookupMode const mode_); |
46 | [[nodiscard]] int keeper_push_linda_storage(Universe* U, Dest L, void* ptr_, uintptr_t magic_); | 48 | [[nodiscard]] int keeper_push_linda_storage(Universe* U, DestState L, void* ptr_, uintptr_t magic_); |
47 | 49 | ||
48 | using keeper_api_t = lua_CFunction; | 50 | using keeper_api_t = lua_CFunction; |
49 | #define KEEPER_API(_op) keepercall_##_op | 51 | #define KEEPER_API(_op) keepercall_##_op |
@@ -59,4 +61,4 @@ using keeper_api_t = lua_CFunction; | |||
59 | [[nodiscard]] int keepercall_count(lua_State* L); | 61 | [[nodiscard]] int keepercall_count(lua_State* L); |
60 | 62 | ||
61 | using KeeperCallResult = Unique<std::optional<int>>; | 63 | using KeeperCallResult = Unique<std::optional<int>>; |
62 | [[nodiscard]] KeeperCallResult keeper_call(Universe* U, lua_State* K, keeper_api_t _func, lua_State* L, void* linda, int starting_index); | 64 | [[nodiscard]] KeeperCallResult keeper_call(Universe* U, KeeperState K, keeper_api_t _func, lua_State* L, void* linda, int starting_index); |