The functions in appshell_node_process.h can be called by anyone, and might get used at multiple places throughout the code. The functions in appshell_node_procecess_internal.h should only get called by the code that is actually managing state. If other code calls these functions, internal state could get messed up.

Ideally, we wouldn't even need the _internal.h header, but it makes the code slightly cleaner since we can use it for both platforms (rather than duplicating forward declarations across two files).

I've added a comment to the _internal.h header explaining the "only the code involved in running node should call these" restriction.