Skip to content

Latest commit

 

History

History
30 lines (20 loc) · 1.82 KB

File metadata and controls

30 lines (20 loc) · 1.82 KB

Examples

@brief Practical Condy code samples.

  • custom-allocator.cpp Demonstrates the use of condy::pmr and custom memory allocators to improve the performance of task creation and destruction.

  • echo-server.cpp A high-concurrency TCP echo server utilizing features like fixed file descriptors.

  • file-server.cpp A simple HTTP file server using condy::async_splice for asynchronous file and network IO.

  • fuse-prime-fs.cpp A FUSE file system server using condy::async_uring_cmd for FUSE-over-io_uring. It serves a dynamic tree over the integers 2..n: prime numbers are regular files holding their own value, and composite numbers are directories recursively containing all smaller numbers.

  • link-cp.cpp Implements concurrent file copying using features like fixed file descriptors, fixed buffers, and link operations, supporting O_DIRECT IO. Achieves up to 2x performance improvement compared to cp.

  • queue-condy-futex.cpp Builds a producer-consumer queue through condy::Futex, implementing asynchronous mutex and condition variable for synchronization.

  • queue-kernel-futex.cpp Builds a producer-consumer queue through asynchronous futex syscalls (condy::async_futex_wait()), implementing an asynchronous semaphore for synchronization.

  • ublk-loop.cpp A ublk loop block device server, using condy coroutines to express the fetch -> perform I/O -> commit loop as straight-line code.

  • module-hello.cpp Demonstrates using Condy as a C++20 module via import condy;. Requires CMake 3.28+, Ninja, and GCC 14+ or Clang 16+. Build with -DCONDY_BUILD_MODULE=ON.