On 2/9/2021 10:59 AM, Niall Douglas via Boost-users wrote:
On 09/02/2021 15:13, Dominique Devienne via Boost-users wrote:
I think choosing a better framework for your use case would make your life awfully easier. Grand Central Dispatch works very well on Mac OS and FreeBSD, and is built into the system. The port of GCD (libdispatch) to Linux is acceptable. On Windows, you want the Win32 thread pool, totally different API, but does the same thing.
Thanks for your answer Niall. But sounds to me that what you are proposing is a large project in and of itself, versus tweaking a portable Boost.Asio-based existing program, to use less memory.
I agree that the learning curve for a new API will be quite steep initially. But GCD's API is quite nicely designed, it's intuitive, and it "just works".
I can't say that the Win32 thread API is as nicely designed. It *is* very flexible and performant, but a lot of it is "non-obvious" relative to GCD's API design.
On the other hand, if you implement a GCD based implementation, you'll #ifdef in a Win32 thread API implementation quite easily. Is this something that can be done with libunifex, that Eric Niebler and
colleagues are working on?