Fix Lua scripting synchronization
authorkwolekr <kwolekr@minetest.net>
Sat, 31 Oct 2015 20:31:43 +0000 (16:31 -0400)
committerkwolekr <kwolekr@minetest.net>
Sun, 1 Nov 2015 16:32:05 +0000 (11:32 -0500)
commit52e5b513ed9dc143c967c733423fe751e1b663d1
tree524462147e28889f655cb2ae867ebb412d9c75e3
parentd198e420ec54be47fe2285b3205953282ec06742
Fix Lua scripting synchronization

For several years now, the lua script lock has been completely broken.
This commit fixes the main issue (creation of a temporary rather than
scoped object), and fixes a subsequent deadlock issue caused by
nested script API calls by adding support for recursive mutexes.
src/script/cpp_api/s_base.cpp
src/script/cpp_api/s_base.h
src/script/cpp_api/s_internal.h
src/threading/mutex.cpp
src/threading/mutex.h