diff options
Diffstat (limited to 'src/lane.hpp')
-rw-r--r-- | src/lane.hpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/lane.hpp b/src/lane.hpp index 5fe36b6..bd328b1 100644 --- a/src/lane.hpp +++ b/src/lane.hpp | |||
@@ -56,6 +56,7 @@ class Lane final | |||
56 | /* | 56 | /* |
57 | Pending: The Lua VM hasn't done anything yet. | 57 | Pending: The Lua VM hasn't done anything yet. |
58 | Resuming: The user requested the lane to resume execution from Suspended state. | 58 | Resuming: The user requested the lane to resume execution from Suspended state. |
59 | Closing: The user is joining the lane, specifically interrupting a suspended Lane. | ||
59 | Suspended: returned from lua_resume, waiting for the client to request a lua_resume. | 60 | Suspended: returned from lua_resume, waiting for the client to request a lua_resume. |
60 | Running, Suspended, Waiting: Thread is inside the Lua VM. | 61 | Running, Suspended, Waiting: Thread is inside the Lua VM. |
61 | Done, Error, Cancelled: Thread execution is outside the Lua VM. It can be lua_close()d. | 62 | Done, Error, Cancelled: Thread execution is outside the Lua VM. It can be lua_close()d. |
@@ -66,6 +67,7 @@ class Lane final | |||
66 | Running, | 67 | Running, |
67 | Suspended, | 68 | Suspended, |
68 | Resuming, | 69 | Resuming, |
70 | Closing, | ||
69 | Waiting, | 71 | Waiting, |
70 | Done, | 72 | Done, |
71 | Error, | 73 | Error, |
@@ -199,12 +201,14 @@ class Lane final | |||
199 | static void PushMetatable(lua_State* L_); | 201 | static void PushMetatable(lua_State* L_); |
200 | void pushStatusString(lua_State* L_) const; | 202 | void pushStatusString(lua_State* L_) const; |
201 | void pushIndexedResult(lua_State* L_, int key_) const; | 203 | void pushIndexedResult(lua_State* L_, int key_) const; |
204 | [[nodiscard]] | ||
205 | int pushStoredResults(lua_State* L_) const; | ||
202 | void resetResultsStorage(lua_State* L_, StackIndex self_idx_); | 206 | void resetResultsStorage(lua_State* L_, StackIndex self_idx_); |
203 | void selfdestructAdd(); | 207 | void selfdestructAdd(); |
204 | [[nodiscard]] | 208 | [[nodiscard]] |
205 | bool selfdestructRemove(); | 209 | bool selfdestructRemove(); |
206 | void securizeDebugName(lua_State* L_); | 210 | void securizeDebugName(lua_State* L_); |
207 | void startThread(int priority_); | 211 | void startThread(lua_State* L_, int priority_, NativePrioFlag native_); |
208 | void storeDebugName( std::string_view const& name_); | 212 | void storeDebugName( std::string_view const& name_); |
209 | [[nodiscard]] | 213 | [[nodiscard]] |
210 | int storeResults(lua_State* L_); | 214 | int storeResults(lua_State* L_); |
@@ -212,7 +216,9 @@ class Lane final | |||
212 | std::string_view threadStatusString() const; | 216 | std::string_view threadStatusString() const; |
213 | // wait until the lane stops working with its state (either Suspended or Done+) | 217 | // wait until the lane stops working with its state (either Suspended or Done+) |
214 | [[nodiscard]] | 218 | [[nodiscard]] |
215 | bool waitForCompletion(std::chrono::time_point<std::chrono::steady_clock> until_); | 219 | bool waitForCompletion(std::chrono::time_point<std::chrono::steady_clock> until_, bool const _acceptSuspended); |
220 | [[nodiscard]] | ||
221 | bool waitForJoin(lua_State* _L, std::chrono::time_point<std::chrono::steady_clock> until_); | ||
216 | }; | 222 | }; |
217 | 223 | ||
218 | // ################################################################################################# | 224 | // ################################################################################################# |