Created
April 30, 2010 21:04
-
-
Save ELLIOTTCABLE/385755 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
An interpreter instance is running in a thread, executing the statements in a | |
routine. | |
When the need arises to run another routine, and that routine is marked as | |
synchronous (rare), then it will immediately be run in the same thread, | |
blocking (stopping) execution of the original routine until the child routine | |
completely completes execution. The same thing happens if the parent routine | |
specifically blocks against the result of the child routine (i.e. in the case | |
of the sync abstraction being at play.) | |
If the child routine is instead marked always-asynchronous, a separate | |
interpreter instance from the pool (possibly a new one being created… I’m not | |
sure how to decide when new instances are necessary) will instead be asked to | |
execute it. | |
If the routine being called is not specified, and the routine is not blocked | |
against, then it acts as a normal, asynchronous routine. It may be run in the | |
same thread, blocking execution of the calling routine, or it may be given to | |
a separate interpreter instance (I’m not sure how to decide between the two…) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment