In libuv, you can end up tying up the worker threads with too much work or buggy code. Is there a simple function that can check the health of the worker threads or thread queue? It doesn't have to be 100% deterministic, after all it would be impossible to determine whether the worker thread is hanging on slow code or an infinite loop.
So any of the following heuristics would be good:
Number of queued items not yet worked on. If this is too large, it could mean the worker threads are busy or hung.
Does libuv have any thread killing mechanism where if the worker thread doesn't check back in n seconds, it gets terminated?