swift-corelibs-libdispatch
c_playground
swift-corelibs-libdispatch | c_playground | |
---|---|---|
3 | 1 | |
2,426 | 0 | |
0.8% | - | |
6.5 | 5.1 | |
4 days ago | 9 months ago | |
C | C | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
swift-corelibs-libdispatch
-
Is Parallel Programming Hard, and, If So, What Can You Do About It? v2023.06.11a
GCD/libdispatch is a fantastic approach to concurrency and you can build and install support for non-Apple operating systems:
https://github.com/apple/swift-corelibs-libdispatch
Here’s a simple echo server:
https://github.com/williamcotton/c_playground/blob/master/sr...
Here’s a simple multithreaded database pool:
https://github.com/williamcotton/express-c/blob/master/src/d...
-
Cross-platform I/O built on io_uring and kqueue (in TigerBeetle)
One of the reasons is that libdispatch's I/O functions introduce extra dynamic allocations for internal queueing via `dispatch_async` ([0],[1],[2]) and from an API perspective of realloc-ing ([3]) an internally owned ([4]) buffer.
TigerBeetle, on the other hand, statically allocates all I/O buffers upfront ([5]), treats these buffers as intrusively-provided typed data ([6]) (no growing/owned buffers), and does internal queueing without synchronization or dynamic allocation ([7]).
[0]: https://github.com/apple/swift-corelibs-libdispatch/blob/469...
-
What are the best books/courses for rigorous study of concurrency in iOS?
If you want iOS in particular, read the source of GCD itself.
c_playground
-
Is Parallel Programming Hard, and, If So, What Can You Do About It? v2023.06.11a
GCD/libdispatch is a fantastic approach to concurrency and you can build and install support for non-Apple operating systems:
https://github.com/apple/swift-corelibs-libdispatch
Here’s a simple echo server:
https://github.com/williamcotton/c_playground/blob/master/sr...
Here’s a simple multithreaded database pool:
https://github.com/williamcotton/express-c/blob/master/src/d...
What are some alternatives?
Hopac - http://hopac.github.io/Hopac/Hopac.html
tigerbeetle - The distributed financial transactions database designed for mission critical safety and performance.
ideas5 - Batch 5 of Ideas for Computing
express-c - Fast, unopinionated, minimalist web framework for C
ThreadPool - A simple C++11 Thread Pool implementation
preemptible-thread - How to preempt threads in user space
futhark - :boom::computer::boom: A data-parallel functional programming language
tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...