Asynchronously calling back into lua is something that can't easily be done in a safe way.
Looking quickly at uloop, I see no mention of any pthreads or multi threading mutexes etc.
How does it ensure it doesn't corrupt the Lua state it's calling back into?
I see it simply saves the Lua state when the uloop library is opened and uses that for all the functions.
But what if the user has another library open that does the same , leading to a case where both uloop and the other library asynchronously call back into the same state?
Is this safe? If so, why/how?