Search found 68 matches

by Dmitry Dagaev
Thu Apr 13, 2017 7:47 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

More precise measurements with background tasks. I've compared calculation time for ObxCoroutines.RunPrimes and Co_ObxActions.StartPrimes. Initial conditions: 1. modified Co_ObxActions to set Co.Yield in the same place, as in ObxCoroutines. 2. excluded time consuming primes logging calls. 3. set 100...
by Dmitry Dagaev
Thu Apr 13, 2017 3:57 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

Checked with last build.
by Dmitry Dagaev
Wed Apr 12, 2017 7:16 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

Josef Templ wrote:there is no transfer to main after detecting a trap.
Extra cleaning was added, fixed, thanks.
by Dmitry Dagaev
Wed Apr 12, 2017 7:00 am
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

Dear Helmut, The Co_ subsystem is used in several projects, at least it is implemented within Post-Accident Monitoring system for Rostov-1 NPP. I use some preprocessor for multi-platform development, so Co_ is for Win/Linux BlackBox/XDS/Ofront. The cross-platform solution works fine on all platforms...
by Dmitry Dagaev
Tue Apr 11, 2017 6:20 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

The change in the 'Start' procedure you mentioned is not really required That was the different case. In Co_ObxSameFringe example r1.Start(r1) was called twice for the same coroutine. It results in BB crash, because of Kernel.RemoveCoroutine(c.impl) is called, but NEW(c.impl) not. I fixed it. The p...
by Dmitry Dagaev
Mon Apr 10, 2017 8:18 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

Josef, If I have different interfaces for Coroutines and Stack&Trap Cleaners, I can immediately add Stack&Trap Clean in Co.Stop implementation. This demonstrates the benefit of development in 2 different dimensions. P.S. Nevertheless, your Co_ patch was effective and arguments about consiste...
by Dmitry Dagaev
Mon Apr 10, 2017 7:51 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

The only surprise was that the Co_ author previously thought that it is not possible. Seeing is believing ;) Here is a straightforward (1:1) adaptation of your module Co_Routines to the Kernel's coroutine services. Why did you bring these daggers from the place? They must lie there: go carry them; ...
by Dmitry Dagaev
Sun Apr 09, 2017 9:57 am
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

Let me add one more comment about a possible misunderstanding: Kernel.Coroutine and Coroutines.Coroutine are not the same. Kernel.Coroutine is the low-level implementation part of Coroutines.Coroutine (the fiber and the stack range info). Kernel.Coroutine is in no way specific for Coroutines but eq...
by Dmitry Dagaev
Sat Apr 08, 2017 7:29 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

When I put the Yield (or Sleep(0)) into the innermost loop I get about 16 seconds with Co_ and about 13 seconds in my version (for to = 256 and attempts = 400000).The differences are explained by the different scheduling strategies. Good results. 40% load by background tasks is set for Co_ Schedule...
by Dmitry Dagaev
Fri Apr 07, 2017 8:08 am
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 639423

Re: Co_Routines Support for Oberon

Josef,
Dining philosophers is an example of cooperative multitasking problem in Co_. There is the concurrency for limited resources (forks) among tasks. But there in no necessity of data protection, important for preemptive threads. Semaphores are used for flow control only.