rebol/rebol — pull request #232 by hostilefork (2014-12-30 15:23:53+00:00)
Title: Remove static from Halt_State in c-do.c ("not exported, but available")

While Rebol's multithreading story hasn't been hammered out, there's a fairly foundational limit for single-threaded clients. If you are using Rebol's guts as a library...with access to the exports as written, you can do nearly anything you need to. But you can't request a halt of a running evaluation and have it jump to a state you set up... because the Halt_State is not exported.

The change *could* be made manually, but this one hold-up prevents use of the rebol/rebol master for a project I am doing. It doesn't add or export anything to the API; it just makes it available to do canceling to those who know how.

*(Interestingly, to take care of the Halt_State for QUIT by overwriting QUIT with one's own function. But as this Halt_State is tied in directly to the evaluator, it's simply impossible to get control back from a halted evaluation if the halt request is originating from a thread different from the thread you are using for Rebol evaluations.)*