dispatch_api man page on Darwin

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
Darwin logo
[printable version]

dispatch_api(3)		 BSD Library Functions Manual	       dispatch_api(3)

NAME
     dispatch_api — Designing API using dispatch

DESCRIPTION
     The following is a brief summary of some of the common design patterns to
     consider when designing and implementing API in terms of dispatch queues
     and blocks.

     A general recommendation is to allow both a callback block and target
     dispatch queue to be specified. This gives the application the greatest
     flexibility in handling asynchronous events.

     It's also recommended that interfaces take only a single block as the
     last parameter. This is both for consistency across projects, as well as
     the visual aesthetics of multiline blocks that are declared inline. The
     dispatch queue to which the block will be submitted should immediately
     precede the block argument (second-to-last argument). For example:

	   read_async(file, callback_queue, ^{
		   printf("received callback.\n");
	   });

     When function pointer alternatives to interfaces that take blocks are
     provided, the argument order of the function signature should be identi‐
     cal to the block variant; with the exception that the block argument is
     replaced with a context pointer, and a new last parameter is added, which
     is the function to call.

     The function based callback should pass the context pointer as the first
     argument, and the subsequent arguments should be identical to the block
     based variant (albeit offset by one in order).

     It is also important to use consistent naming. The dispatch API, for
     example, uses the suffix "_f" for function based variants.

SEE ALSO
     dispatch(3), dispatch_async(3), dispatch_queue_create(3)

Darwin				  May 1, 2009				Darwin
[top]

List of man pages available for Darwin

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net