← Back to team overview

kicad-developers team mailing list archive

Re: KiCad Coroutines

 

On Thu, Jan 07, 2016 at 01:24:18PM +0100, Edwin van den Oetelaar wrote:
> I have done some embedded work in which these cooperative concepts happened.

> by using co-routines this way you gain perceived concurrency but no real
> increased power.

It's not done for concurrency, only for flow control. Otherwise it would
be a thread, not a coroutine :D

When a coroutine stops only another one resumes, i.e. you manually and
explicitly jump between threads of execution. Moreover you have full
control of *which* coroutine pass to the CPU; it's a fundamentally
different thing.

- Threads: many control flows, everyone run in parallel. If infinite
  cores are not available, scheduling is done by the OS in marginally
  controllable way (except with synchronization)

- Coroutine: many control flows, only one runs at a time and then
  suspend to pass the control to the desired one; no synchronization
  needed since only one is in control at any time

-- 
Lorenzo Marcantonio
CZ Srl - Parma

Attachment: signature.asc
Description: PGP signature


Follow ups

References