… | |
… | |
13 | =cut |
13 | =cut |
14 | |
14 | |
15 | package CFPlus; |
15 | package CFPlus; |
16 | |
16 | |
17 | BEGIN { |
17 | BEGIN { |
18 | $VERSION = '0.2'; |
18 | $VERSION = '0.5'; |
19 | |
19 | |
20 | use XSLoader; |
20 | use XSLoader; |
21 | XSLoader::load "CFPlus", $VERSION; |
21 | XSLoader::load "CFPlus", $VERSION; |
22 | } |
22 | } |
23 | |
23 | |
… | |
… | |
69 | my %DB_SYNC; |
69 | my %DB_SYNC; |
70 | |
70 | |
71 | sub put($$$) { |
71 | sub put($$$) { |
72 | my ($db, $key, $data) = @_; |
72 | my ($db, $key, $data) = @_; |
73 | |
73 | |
|
|
74 | my $hkey = $db + 0; |
|
|
75 | Scalar::Util::weaken $db; |
74 | $DB_SYNC{$db} = AnyEvent->timer (after => 5, cb => sub { $db->db_sync }); |
76 | $DB_SYNC{$hkey} ||= AnyEvent->timer (after => 5, cb => sub { |
|
|
77 | delete $DB_SYNC{$hkey}; |
|
|
78 | $db->db_sync if $db; |
|
|
79 | }); |
75 | |
80 | |
76 | $db->db_put ($key => $data) |
81 | $db->db_put ($key => $data) |
77 | } |
82 | } |
78 | |
83 | |
79 | package CFPlus; |
84 | package CFPlus; |