Decreases the counter by one.
All threads blocked on wait()/wait_until() are awakened if the counter becomes zero.
If the counter becomes negative, fails with GLib.error.