Thread Mehrere Instanzen verhindern? (19 answers)
Opened by BratHering at 2006-05-09 19:05

murphy
 2006-05-13 02:47
#45397 #45397
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Warum sollte man das Problem eigentlich nicht mit Dateisperren lösen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl
use strict;
use warnings;

use Fcntl qw/:flock/;
use File::HomeDir qw//;

BEGIN {
my $lockfile_path = File::HomeDir->my_data . '/my_lockfile';
open LOCKFILE, '>', $lockfile_path;
flock LOCKFILE, LOCK_EX | LOCK_NB
or die "cannot acquire exclusive lock: $!\n";
}

# do something sensible here
print "Here I am\n";
sleep 10;
print "And there I go\n";

END {
flock LOCKFILE, LOCK_UN;
close LOCKFILE;
}


Ok, laut perlport funktioniert das nicht auf Mac OS 9 oder älter, VMS, RISC OS, VOS und Windows 95 oder älter -- aber es ist allemal portabler und einfacher als eine zusammengehackte Lösung über Prozesstabellen, finde ich.
When C++ is your hammer, every problem looks like your thumb.

View full thread Mehrere Instanzen verhindern?