Wiki     Timeline     Browser     Search     New Ticket     Bug Reports
Apache MPM Sample Code

The Apache GCD MPM allows the Apache web server to use Grand Central Dispatch (GCD), rather than threads or processes, as a source of concurrency on Mac OS X and FreeBSD. It is intended to illustrate both GCD's programming model and programmability benefits, as well as how GCD can be integrated into a existing large-scale and thread-aware application. See the wiki page for more information.

libdispatch on FreeBSD

The libdispatch library is available in the FreeBSD ports collection for experimental use on FreeBSD 9.x.  Several kqueue kernel enhancements are planned for FreeBSD 8.1 in order to allow the libdispatch port to be used on FreeBSD 8.x as well.

Information is available on the FreeBSD wiki about installing the libdispatch, llvm-devel, and compiler-rt ports allowing full use of the blocks extension to C with libdispatch.

libdispatch is open source!

Welcome to the libdispatch project!

The libdispatch project consists of the user space implementation of the Grand Central Dispatch API as seen in Mac OS X version 10.6 Snow Leopard. The Mac OS X kernel support for GCD may be found in the xnu project. While kernel support provides many performance optimizations on Mac OS X, it is not strictly required for portability to other platforms. However, in order to implement the full API for Grand Central Dispatch, C compiler support for blocks is required. The blocks runtime is available as part of the LLVM project.

This project is intended to be a resource for developers interested in learning more about libdispatch on Mac OS X. Contributions to this project will be continually evaluated for possible inclusion in future releases of Mac OS X. The sources are available under the terms of the Apache License, Version 2.0 in the hope that they might serve as a launching point for porting GCD to other platforms.

Source Code

You can browse the sources online or check out the latest sources from the repository via Subversion or Git.

Additional Resources

We recognize that libdispatch is a new technology and you likely have many questions. Here are some documentation resources for getting started:

Feel free to direct any questions you may have to the new email discussion list:


The GCD team


news feed