Pytam o to z ciekawości.Odpowiednik Mac OS interfejsu Windows Fibres API?
System Windows zapewnia to, co nazywa się Fibers API, który jest interfejsem API dla lekkich procesów/wątków użytkownika.
Byłem zainteresowany wiedząc, czy Mac OS zapewnia również takie funkcje. O ile mogłem się dowiedzieć, najbliższym odpowiednikiem Uniksa byłaby rodzina funkcji setcontext
. Jednak próba wywołania takiego interfejsu API w programie Mac generuje ostrzeżenia informujące, że funkcje zostały wycofane od wersji 10.6 systemu OS X. Ponadto, gdy próbuję skompilować i uruchomić przykład podany w powyższym linku do Wikipedii, otrzymuję błąd seg na mojej maszynie przy pierwszym swapcontext
.
Najwyraźniej interfejs API setcontext
nie nadaje się do komputerów Mac. Nie dłużej. Czy istnieje inny sposób uzyskiwania lekkich wątków po stronie użytkownika w systemie Mac OS? Czy system zapewnia taką funkcjonalność?
Czy obejrzałeś Grand Central Dispatch? –
@ScottHunter, znam niektóre ramy GCD. Ale czy pozwala, na przykład, ręcznie przełączać się między wątkami pracy, jak to jest z włóknami? Nie sądzę, że GCD mógłby być uważany za odpowiednik wątków po stronie użytkownika ... – glampert
Niekoniecznie zrezygnowałbym z zestawu instrukcji Mac OS() tak szybko ... przestarzałe funkcje zwykle działają; po prostu nie gwarantują, że będą obsługiwane w przyszłych wersjach systemu operacyjnego. Może to być po prostu kwestia ulepszenia niektórych szczegółów, aby uzyskać setcontext() działający pod MacOS. –