/* Returns: (transfer full): a reference to the #GVolumeMonitor used by gio. Call g_object_unref() when done with it.  */
GVolumeMonitor* g_volume_monitor_get(void)
/* Returns: (transfer full): a reference to the #GVolumeMonitor used by gio. Call g_object_unref() when done with it.  */
GVolumeMonitor* g_volume_monitor_get(void)
{
  GVolumeMonitor *vm;
  g_rec_mutex_lock (&the_volume_monitor_mutex);
  if (the_volume_monitor)
    vm = G_VOLUME_MONITOR (g_object_ref (the_volume_monitor));
  else
    {
      the_volume_monitor = g_union_volume_monitor_new ();
      populate_union_monitor (the_volume_monitor);
      vm = G_VOLUME_MONITOR (the_volume_monitor);
    }
  g_rec_mutex_unlock (&the_volume_monitor_mutex);
  return vm;
}