Git Product home page Git Product logo

dispatch's Introduction

Dispatch++

Dispatch++ provides header-only C++ APIs for Grand Central Dispatch (GCD or libdispatch).

Project Status

Dispatch++ is tested under:

  1. macOS 12.3, Apple Silicon
  2. GNU Linux 4.9, ARM Cortex A7 and A9, with Busybox.

It should also work on every platform that libdispatch supports.

Install

Clone the repository as a git submodule, or copy include/Dispatch++ folder to your project.

  1. Add Dispatch++ include directory in header search path.
  2. libdispatch is required.
  3. LLVM 12.0 or higher is required, enable C++20 features.

Features

  • The API align with Swift APIs.
  • Headers only.
  • Tested.

Usage

#include <Dispatch++/Dispatch.h>

int main() {
  DispatchQueue queue = DispatchQueue{"dispatch.dispatch-after"};
  
  // after 6 seconds
  auto time_a = DispatchTime::now() + DispatchTimeInterval::seconds(6);
  
  queue.asyncAfter(time_a, ^{
    printf("Hello, World!\n");
  });
}

TODO

  • Support DISPATCH_SOURCE_TYPE_PROC.
  • Support DISPATCH_SOURCE_TYPE_VM.
  • Support DISPATCH_SOURCE_TYPE_VNODE.
  • Make DispatchTime compatible with std::chrono::time_point.

Documentation

The official Dispatch documentation for Swift can be applied to Dispatch++.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.