aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/llthread.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/llthread.c b/src/llthread.c
index c78d766..66efe7c 100644
--- a/src/llthread.c
+++ b/src/llthread.c
@@ -98,11 +98,17 @@ typedef pthread_t os_thread_t;
98 98
99#define LLTHREAD_OPEN_NAME LLTHREAD_OPEN_NAME_IMPL(LLTHREAD_MODULE_NAME) 99#define LLTHREAD_OPEN_NAME LLTHREAD_OPEN_NAME_IMPL(LLTHREAD_MODULE_NAME)
100 100
101#define LLTHREAD_STRINGIFY(x) #x
102#define LLTHREAD_TOSTRING(x) LLTHREAD_STRINGIFY(x)
103#define LLTHREAD_MODULE_NAME_STRING LLTHREAD_TOSTRING(LLTHREAD_MODULE_NAME)
104
105
101LLTHREADS_EXPORT_API int LLTHREAD_OPEN_NAME(lua_State *L); 106LLTHREADS_EXPORT_API int LLTHREAD_OPEN_NAME(lua_State *L);
102 107
103#define LLTHREAD_NAME "LLThread" 108#define LLTHREAD_NAME "LLThread"
104static const char *LLTHREAD_TAG = LLTHREAD_NAME; 109static const char *LLTHREAD_TAG = LLTHREAD_NAME;
105static const char *LLTHREAD_LOGGER_HOLDER = LLTHREAD_NAME " logger holder"; 110static const char *LLTHREAD_LOGGER_HOLDER = LLTHREAD_NAME " logger holder";
111static const char* LLTHREAD_INTERRUPTED_ERROR = LLTHREAD_MODULE_NAME_STRING ": thread was interrupted";
106 112
107typedef struct llthread_child_t { 113typedef struct llthread_child_t {
108 lua_State *L; 114 lua_State *L;
@@ -697,11 +703,11 @@ static int l_llthread_new(lua_State *L) {
697static void llthread_interrupt1(lua_State *L, lua_Debug *ar) { 703static void llthread_interrupt1(lua_State *L, lua_Debug *ar) {
698 (void)ar; /* unused arg. */ 704 (void)ar; /* unused arg. */
699 lua_sethook(L, NULL, 0, 0); /* reset hook */ 705 lua_sethook(L, NULL, 0, 0); /* reset hook */
700 luaL_error(L, "interrupted!"); 706 luaL_error(L, LLTHREAD_INTERRUPTED_ERROR);
701} 707}
702static void llthread_interrupt2(lua_State *L, lua_Debug *ar) { 708static void llthread_interrupt2(lua_State *L, lua_Debug *ar) {
703 (void)ar; /* unused arg. */ 709 (void)ar; /* unused arg. */
704 luaL_error(L, "interrupted!"); 710 luaL_error(L, LLTHREAD_INTERRUPTED_ERROR);
705} 711}
706 712
707static int l_llthread_interrupt(lua_State *L) { 713static int l_llthread_interrupt(lua_State *L) {
@@ -796,5 +802,9 @@ LLTHREADS_EXPORT_API int LLTHREAD_OPEN_NAME(lua_State *L) {
796 l_llthread_push_version(L); 802 l_llthread_push_version(L);
797 lua_rawset(L, -3); 803 lua_rawset(L, -3);
798 804
805 lua_pushliteral(L, "interrupted_error");
806 lua_pushstring(L, LLTHREAD_INTERRUPTED_ERROR);
807 lua_rawset(L, -3);
808
799 return 1; 809 return 1;
800} 810}