Adds a SignalSource to a
context so that it will be executed
within that context.
Remove it by calling destroy.
This function is safe to call from any thread, regardless of which thread the
context is running in.
a MainContext (if null, the global-default main context will be used)
the ID (greater than 0) for the source within the MainContext.