Search found 68 matches

by Dmitry Dagaev
Thu Mar 30, 2017 4:33 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 636683

Re: Co_Routines Support for Oberon

The only reason to use ConvertThreadToFiberEx is to use FIBER_FLAG_FLOAT_SWITCH. In Co_Api module I was performing some experiments on this flag, and it is set to 0 in my current version. Setting this flag results in creating fibers failure on several old (and, maybe, new) platforms. They say, that ...
by Dmitry Dagaev
Thu Mar 30, 2017 10:24 am
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 636683

Re: Co_Routines Support for Oberon

Josef, I am using primary:=ConvertThreadToFiber(0) to create primary fiber for current thread and CreateFiber for each coroutine. ConvertThreadToFiber is necessary, because only fibers can execute fibers according to MSDN. On CLOSE ConvertFiberToThread is mandatory. I have no information about Fiber...
by Dmitry Dagaev
Thu Mar 30, 2017 10:22 am
Forum: Feature
Topic: Coroutines
Replies: 1
Views: 10141

Re: Coroutines

There was one another implementation of BlackBox Cooperative Multitasking - Tasks subsystem by Ilya Ermakov. He mentioned it on russian forum https://forum.oberoncore.ru/viewtopic.p ... 219#p89919. It was not published.
by Dmitry Dagaev
Thu Mar 30, 2017 8:15 am
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 636683

Re: Co_Routines Support for Oberon

You can type Co.Transfer(another) . Nothing prevents you. And you return data not to calling point, but to other side. Just if you ask Mary an apple but get project plan from Boss. The same situation, if you use subroutines, is guaranteed by compiler. Subroutine calls are placed in stack by FILO dis...
by Dmitry Dagaev
Thu Mar 30, 2017 6:29 am
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 636683

Re: Co_Routines Support for Oberon

Directed Coroutines syntax . Directed coroutines are used in various languages as generators. Coroutines compiler support (in Python, Lua, etc) affords subroutine-like style. Coroutine Transfer is like subroutine call, coroutine Yield is like RETURN. The C-like syntax with compiler support is below...
by Dmitry Dagaev
Wed Mar 29, 2017 7:40 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 636683

Re: Co_Routines Support for Oberon

Types of Co_Routines (More about types http://www.softpanorama.org/Lang/Asmorama/coroutines_in_assembler.shtml ). Either of technologies used perform context switching. Cocall instruction directs control to other Co_Routine. We use Transfer command to cocall. In the Fig: co3.png we see cocalls betw...
by Dmitry Dagaev
Wed Mar 29, 2017 6:55 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 636683

Re: Co_Routines Support for Oberon

types.png Types of Tools. Co_Tasks module introduce the basic types for tools, providing pseudo-parallel execution. In is derived from C.Szyperski "Insight-EthOS" where the relations between entities below were defined (Fig: types.png). Task is the most lightweight form, Coroutine contain...
by Dmitry Dagaev
Wed Mar 29, 2017 6:06 pm
Forum: Co_
Topic: Co_Routines Support for Oberon
Replies: 90
Views: 636683

Co_Routines Support for Oberon

This topic deals with Co_ subsystem: Co_Routines cross-platform support for Oberon. It was developed in 2014 and has public domain licence. The CPC version for BlackBox is http://www.zinnamturm.eu/downloadsAC.htm#Co_ . The cross-platform collection is http://sourceforge.net/projects/ta1/files/co2.0/...