Adds a bus watch to the default main context with the given priority (e.g. G_PRIORITY_DEFAULT). It is also possible to use a non-default main context set up using MainContext.pushThreadDefault (before one had to create a bus watch source and attach it to the desired main context 'manually').
This function is used to receive asynchronous messages in the main loop. There can only be a single bus watch per bus, you must remove it before you can set a new one.
The bus watch will only work if a GLib main loop is being run.
When func is called, the message belongs to the caller; if you want to keep a copy of it, call Message.ref before leaving func.
The bus watch will take its own reference to the bus, so it is safe to unref bus using gst_object_unref() after setting the bus watch.