Evet arkadaşlar, şimdi ön alma ve zamanlama uygulamasına başlayalım.
Bu yüzden eventloop dot h dosyasındayım.
Ve bir enum tanımlayarak başlayacağım.
Yani bu enum Eventloop continue ve event loop finish diyor.
Pekâlâ, bu ilk adım.
İkinci adım, olay döngüsü geri arama işlevinin prototipini, olay döngüsü
geri arama işlevinin bu enumun değerini döndürmesini sağlayacak şekilde değiştireceğiz.
Tamam.
Yani event loop dot h başlık dosyasında yapmamız gereken kod değişiklikleri bunlar.
Yani temel olarak söylemek istediğim şey, olay döngüsü geri çağırma işlevinin bir değer döndürmesi gerektiğidir.
Şimdi demo app single threaded concurrency dot c dosyasına gidin.
Ve bu dosyada yükleme işlevi ve indirme işlevi olan olay döngüsü geri arama işlevini uyguladık.
Şimdi bu fonksiyonun prototipi burada değiştirdiğimiz prototipe uygun olmalıdır.
Bu yüzden bu enumun değerini döndürmelidirler.
Aynı şey indirme işlevi için de geçerli.
Şimdi geliştiricinin yapması gereken tek şey, işin bu görev tarafından hala tamamlanmadığını hissederse
ve olay döngüsü iş parçacığının bu görevi yeniden planlamasını isterse, o zaman tek
yapması gereken L continue enum'u döndürmektir ve bu iki satıra gerek yoktur.
Ve aksi takdirde, görev işini tamamladıysa, yani yükleme %100 olduysa, aynı
kod değişikliklerinin indirme işleviyle de yapılması gerektiğini basitçe geri dönebilirsiniz.
Yani bunlar, olay döngüsünü kullanan uygulama tarafında yapmamız gereken kod değişiklikleridir.
Ve şimdi olay döngüsü nokta c dosyasına geliyoruz.
Olay döngüsü iş parçacığı işlevine girmemiz ve bu işlevde olay
döngüsü iş parçacığının geri arama işlevini çağırdığı satıra gitmemiz gerekir.
Tamam.
Bu yüzden önce bir değişken tanımlamamız gerekiyor.
Sonuç arandı.
Ve bu geri arama fonksiyonu geri döndüğünde, sonucun değerini yakalayacağız.
Ve şimdi olay döngüsü başlığı bunu inceleyecek.
Geri dönüş değeri nedir? Eğer geri dönüş değeri event loop continue
ise, o zaman tek yapmamız gereken aynı görevi yeniden planlamaktır.
Tamam.
Aksi takdirde bu görevle işimiz biter, dolayısıyla görevi serbest bırakırız.
Yani yapmamız gereken kod değişiklikleri bunlar.
Hepsi bu kadar.
Şimdi programımızı derleyelim ve çalıştıralım.
Tamam.
Bu yüzden bu fonksiyonu kullanmadan önce kopyalayıp yapıştırmamız gerekir.
Bu yüzden bu fonksiyonu buraya koyacağım.
Ve program daha önce nasıl çalışıyorsa aynı şekilde çalışmalıdır.
Tamam.
Bu nedenle, artık resmi bir şekilde ön alım uygulamasını hayata geçirdik.
Yani yinelemek için geliştiricinin yapması gereken tek şey l continue veya l finish değerini döndürmektir.
Bu nedenle geliştirici, olay döngüsü iş parçacığının görevi
tekrar planlamasını istiyorsa l continue değerini döndürmelidir.
Aksi takdirde, geliştirici olay döngüsü iş parçacığının görevi sonlandırmasını istiyorsa L finish döndürmelidir.
Bu kadar.