+for (;;) {
+ poldb_setup();
+ $stderr = '';
+
+ my $rcode = $fn->();
+ die unless defined $rcode;
+
+ eval { $poldbh->commit; };
+ last unless length $@;
+
+ die if $sleepy >= 20;
+ print STDERR "[policy database busy, retrying]\n";
+ sleep ++$sleepy;
+
+ $poldbh->rollback;
+}