June 08, 2018

Merhaba,
Unityde de çok kullanılan coroutines kavramının ne olduğunu biliyorum fakat nasıl çalıştığını merak ettim. Yani nasıl kaldığı yerden devam edebildiğini. C++ a baktığımda C++20 standartları ile geliyormuş sanırsam. D ye baktığımda ise kullanıldığını gördüm. Peki D üzerinde coroutineler nasıl kaldığı yerde devam edebiliyor ? Ve D de nerelerde kullanılıyorlar ?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

June 08, 2018

Programın ne iş yapmakta olduğu kabaca iki yazmaçla belirlenir: IP (instruction pointer) ve SP (stack pointer). Bu ve başka yazmaçların değerlerini bir kenara kaydetmek ve sonra tekrar yüklemek coroutine oluşturmak için yeterli oluyor. CPU işini yazmaçlarla halletiğinden, yeni değerler ne işi gösteriyorsa CPU da o işi halletmeye devam ediyor.

D'de coroutine'e fiber diyoruz. Birden fazla çağrı yığıtı olabileceğini ve bunlardan istenenin seçilebileceğini anlamak, bence bu kavramı anlamak için yeterli:

http://ddili.org/ders/d/fiberler.html

DConf 2016'da bu konuyu sunmuştum:

http://dconf.org/2016/talks/cehreli.html

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]