Zamceni adresare

Jan Kasprzak kas na fi.muni.cz
Středa Prosinec 2 21:10:47 CET 2009


	Resim problem synchronizace dvou procesu pracujicich nad danym
adresarem. Protoze jejich zapisove operace se tykaji zejmena prejmenovavani
souboru, prislo mi prirozene nesynchronizovat je zamykacim souborem,
ale rovnou zamykat ten adresar jako takovy. Bohuzel to ale nefunguje
- podle strace se Perl vubec ten adresar nepokusi zamknout:

$ strace perl -MFcntl=:flock -e 'opendir my $fh, "."; flock $fh, LOCK_EX'
[...]
open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFDIR|S_ISGID|0775, st_size=4096, ...}) = 0
fcntl(3, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
close(3)                                = 0
exit_group(0)                           = ?

	Co delam spatne? Z programu v C se mi pres
fcntl(dirfd(dir_p), LOCK_EX, &lock) normalne podari adresar otevrit.
Perl se ani nepokusi ten zamek vytvorit.

	Diky,

-Yenya

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/    Journal: http://www.fi.muni.cz/~kas/blog/ |
Please don't top post and in particular don't attach entire digests to your
mail or we'll all soon be using bittorrent to read the list.     --Alan Cox


Další informace o konferenci Perl