GT::Session::File needs also file locking as well ALL open() operation (read or write).
While each session file is unique for each visitor, the visitors many times double clicks to buttons. Therefore the data loss chance is not much less as if the file would be used by many users.
As you know there were several config file data losses for LSQL users on admin interface which has very rare change since usually 1 user uses the admin interface. Likely when an admin double clicked an Update button. So nothing is impossible.
The session file is opened with open():
open ($fh, "> $file") or return $self->error ('CANTOPEN', 'FATAL', $file, "$!");
The do() doesn't matter. After the open() there is GT::Dumper->dump used, and several tasks are done there.
Therefore there *IS* the time slice where 2 processes can which was caused by user multiple click.
But the biggest problem is that it seems, flock() is not used in LSQL almost at all!
The only place where flock is used: GT::FileMan::Commands, which is not really related to other LSQL parts...
Best regards,
Webmaster33
Paid Support from Webmaster33. Expert in Perl programming & Gossamer Threads applications. (click here for prices)
Webmaster33's products (upd.2004.09.26) | Private message | Contact me | Was my post helpful? Donate my help...
While each session file is unique for each visitor, the visitors many times double clicks to buttons. Therefore the data loss chance is not much less as if the file would be used by many users.
As you know there were several config file data losses for LSQL users on admin interface which has very rare change since usually 1 user uses the admin interface. Likely when an admin double clicked an Update button. So nothing is impossible.
The session file is opened with open():
open ($fh, "> $file") or return $self->error ('CANTOPEN', 'FATAL', $file, "$!");
The do() doesn't matter. After the open() there is GT::Dumper->dump used, and several tasks are done there.
Therefore there *IS* the time slice where 2 processes can which was caused by user multiple click.
But the biggest problem is that it seems, flock() is not used in LSQL almost at all!
The only place where flock is used: GT::FileMan::Commands, which is not really related to other LSQL parts...
Best regards,
Webmaster33
Paid Support from Webmaster33. Expert in Perl programming & Gossamer Threads applications. (click here for prices)
Webmaster33's products (upd.2004.09.26) | Private message | Contact me | Was my post helpful? Donate my help...