# Loop until there's something to return
until (scalar keys %{$event}) {
- $dbh->bz_lock_tables('whine_schedules WRITE',
- 'whine_events READ',
- 'profiles READ',
- 'groups READ',
- 'group_group_map READ',
- 'user_group_map READ');
+ $dbh->bz_start_transaction();
# Get the event ID for the first pending schedule
$sth_next_scheduled_event->execute;
reset_timer($sid);
}
- $dbh->bz_unlock_tables();
+ $dbh->bz_commit_transaction();
# Only set $event if the user is allowed to do whining
if ($owner->in_group('bz_canusewhines')) {