diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/llthread.c | 14 |
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 | |||
101 | LLTHREADS_EXPORT_API int LLTHREAD_OPEN_NAME(lua_State *L); | 106 | LLTHREADS_EXPORT_API int LLTHREAD_OPEN_NAME(lua_State *L); |
102 | 107 | ||
103 | #define LLTHREAD_NAME "LLThread" | 108 | #define LLTHREAD_NAME "LLThread" |
104 | static const char *LLTHREAD_TAG = LLTHREAD_NAME; | 109 | static const char *LLTHREAD_TAG = LLTHREAD_NAME; |
105 | static const char *LLTHREAD_LOGGER_HOLDER = LLTHREAD_NAME " logger holder"; | 110 | static const char *LLTHREAD_LOGGER_HOLDER = LLTHREAD_NAME " logger holder"; |
111 | static const char* LLTHREAD_INTERRUPTED_ERROR = LLTHREAD_MODULE_NAME_STRING ": thread was interrupted"; | ||
106 | 112 | ||
107 | typedef struct llthread_child_t { | 113 | typedef struct llthread_child_t { |
108 | lua_State *L; | 114 | lua_State *L; |
@@ -697,11 +703,11 @@ static int l_llthread_new(lua_State *L) { | |||
697 | static void llthread_interrupt1(lua_State *L, lua_Debug *ar) { | 703 | static 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 | } |
702 | static void llthread_interrupt2(lua_State *L, lua_Debug *ar) { | 708 | static 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 | ||
707 | static int l_llthread_interrupt(lua_State *L) { | 713 | static 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 | } |