I have a program that requires a large number of tasks being run concurrently, but not in parallel. When I started working on this program I explored some options (Callback based, turned out to be too impractical to be viable; tink.async, turned out to completely mess up IDE autocompletion and @async/@await crept its way into every function, also slowed compilation down to a crawl). I eventually ended up simulating Fibers with the standard Thread API. This worked fine for a while, but as the complexity of processed data grows the performance starts to become unbearable.
Long story short: I have a handful of classes which create and coordinate Threads, but I have to replace them with Green Threads/Fibers/whatever you wanna call 'em. Anything that resembles async/await or callback-functionality is out of the questions as I would have to rewrite tens of thousands of LoC. Can anyone think of a conceivable way to do this without switching to one of the super-slow target platforms?