/* The @handler_id has to be a valid id of a signal handler that is connected to a signal of @instance and is currently blocked.  */
void g_signal_handler_unblock(gpointer instance, gulong handler_id)
/* The @handler_id has to be a valid id of a signal handler that is connected to a signal of @instance and is currently blocked.  */
void g_signal_handler_unblock(gpointer instance, gulong handler_id)
{
  Handler *handler;
  g_return_if_fail (G_TYPE_CHECK_INSTANCE (instance));
  g_return_if_fail (handler_id > 0);
  SIGNAL_LOCK ();
  handler = handler_lookup (instance, handler_id, NULL, NULL);
  if (handler)
    {
      if (handler->block_count)
        handler->block_count -= 1;
      else
        g_warning (G_STRLOC ": handler '%lu' of instance '%p' is not blocked", handler_id, instance);
    }
  else
    g_warning ("%s: instance '%p' has no handler with id '%lu'", G_STRLOC, instance, handler_id);
  SIGNAL_UNLOCK ();
}