The definition of a "source" isn't specified, nor is the acceptable source format specified.

In addition, it isn't specified in the docs whether this function must be called once, or whether it can be called multiple times. Reverse engineering the source seems to indicate that it should be called just once, and if you call it multiple times the underlying event loop will be corrupted.