Thread Flock mit timeout (14 answers)
Opened by freddy at 2009-08-08 20:01

freddy
 2009-08-08 20:01
#123972 #123972
User since
2009-08-08
95 articles
BenutzerIn

user image
Hi und Hallo!

Habe mir hier eine sub gebastelt und möchte darin eigentlich gern verwirklichen, dass mein flock maximal 3 Sekunden wartet und sonst mit Fehler zurück kehrt.
Aber es funktioniert nicht.
Obwohl die Datei definitiv frei bzw. noch garnicht vorhanden ist, meldet es trotzdem Timeout on flock. Warum?
Mein bisheriges gegoogle hat mich nicht weiter gebracht.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub create_link($) {
  my $filehandle = shift(@_);
  my $max_wartezeit = 3;
  my $fehler = '';
  sysopen ($filehandle, "sysopentest.txt", O_RDWR | O_CREAT, 0600) or $fehler = $!;
  if (!$fehler) {
    my $start = time;
    while(!flock($filehandle,LOCK_EX|LOCK_NB) && time-$start<$max_wartezeit){
      sleep 1;
    }
  $fehler = 'Timeout on flock' if !flock ($filehandle, LOCK_EX | LOCK_NB);
  }
  return $fehler;
}

Last edited: 2009-08-08 20:54:32 +0200 (CEST)

View full thread Flock mit timeout