From 4d23dce4bfd729713dd6fa9480a5298748a7d13c Mon Sep 17 00:00:00 2001 From: halw Date: Fri, 10 Jun 2011 18:52:27 +0000 Subject: [PATCH] Author:halw Date:2011-06-10T01:28:43.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@922 abb3cda0-5349-4a8f-a601-0c33ac3a8c38 --- .../concurrent-eiffel-scoop/index.wiki | 2 +- .../concurrent-eiffel-scoop/scoop-implementation.wiki | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/index.wiki b/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/index.wiki index d9de0e23..33c15bad 100644 --- a/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/index.wiki +++ b/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/index.wiki @@ -64,7 +64,7 @@ In traditional, sequential Eiffel, although we realize that there is some proces The term ''processor'' (or, interchangeably, ''handler'') is vital to SCOOP and thought of in a slightly different way than in traditional Eiffel, i. e., not just as a hardware processor. In a concurrent system, there may be any number of ''processors''. Here the term is used in a more abstract sense than before. In SCOOP we think of a processor as any autonomous thread of control capable of applying features to objects. At the level of the SCOOP model, processors are not restricted to a particular type of hardware or software. So, if you were writing software for a hardware implementation with multiple processors, those real processors might correspond to the ''processors'' of SCOOP. But if you were writing a system using multiple process threads, then those threads might correspond to SCOOP ''processors''. -{{note|In the initial SCOOP implementation in EiffelStudio version 6.8, process threads are the only supported concurrency mechanism. }} +{{note|In the initial SCOOP implementation in EiffelStudio version 6.8, multiple process threads are the only supported concurrency mechanism. So, each SCOOP processor is implemented as a separate thread of execution in a single process. }} Multiple processors in SCOOP come into play when feature calls on a particular object may actually be applied by a different processor than the one on which the feature call was issued. Of course, this is the important distinction between feature call and feature application that was mentioned above. In SCOOP, the processor which does the feature application may be different from the one that does the feature call. So you can think of feature call as being the ''logging'' or ''queuing'' of a request to have a feature applied. diff --git a/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/scoop-implementation.wiki b/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/scoop-implementation.wiki index 2f40b126..58241005 100644 --- a/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/scoop-implementation.wiki +++ b/documentation/current/solutions/concurrent-computing/concurrent-eiffel-scoop/scoop-implementation.wiki @@ -17,7 +17,13 @@ The differences between the EiffelStudio implementation of SCOOP and current and ==Supported concurrency mechanisms== -Although the SCOOP model can support virtually any underlying concurrency mechanism, the initial SCOOP implementation supports only process threads as SCOOP [[Concurrent Eiffel with SCOOP#Processors|processors]]. +Although the SCOOP model can support virtually any underlying concurrency mechanism, the initial SCOOP implementation in EiffelStudio version 6.8 supports only one executable, using multiple process threads as SCOOP [[Concurrent Eiffel with SCOOP#Processors|processors]]. + +==SCOOP processor termination== + +In version 6.8, a SCOOP processor, once created, does not terminate until the entire SCOOP application that created it terminates. This occurs when all processors in the application become idle, that is, when there are no more calls logged on any processor and no calls are in the process of being applied. + +In a future version, garbage collection will determine when a particular SCOOP processor may terminate. ==Separate anchored types==