In Objective-C, you could specify the event handler for a dispatch source as either a block or a function. From Apple's Concurrency Programming Guide:
Function-based event handlers take a single context pointer, containing the dispatch source object, and return no value. Block-based event handlers take no parameters and have no return value.
In Swift 3, is it still possible to use a function as an event handler? I only see how to use a block. I need access to the source in my handler and I need to define my handler separately from where the source is defined.