aboutsummaryrefslogtreecommitdiff
path: root/src/keeper.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/keeper.h')
-rw-r--r--src/keeper.h8
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" {
18enum class LookupMode; 18enum class LookupMode;
19class Universe; 19class Universe;
20 20
21using KeeperState = Unique<lua_State*>;
22
21struct Keeper 23struct 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_);
44void keeper_release(Keeper* K_); 46void keeper_release(Keeper* K_);
45void keeper_toggle_nil_sentinels(lua_State* L, int val_i_, LookupMode const mode_); 47void 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
48using keeper_api_t = lua_CFunction; 50using 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
61using KeeperCallResult = Unique<std::optional<int>>; 63using 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);