ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-BDB/BDB.pm
Revision: 1.2
Committed: Tue Jul 21 03:35:50 2009 UTC (14 years, 9 months ago) by root
Branch: MAIN
CVS Tags: rel-1_1
Changes since 1.1: +4 -8 lines
Log Message:
1.1

File Contents

# Content
1 =head1 NAME
2
3 AnyEvent::BDB - truly asynchronous berkeley db access
4
5 =head1 SYNOPSIS
6
7 use AnyEvent::BDB;
8 use BDB;
9
10 # can now use any of the requests your BDB module supports
11 # as long as you use an event loop supported by AnyEvent.
12
13 =head1 DESCRIPTION
14
15 This module is an L<AnyEvent> user, you need to make sure that you use and
16 run a supported event loop.
17
18 Loading this module will install the necessary magic to seamlessly
19 integrate L<BDB> into L<AnyEvent>, i.e. you no longer need to concern
20 yourself with calling C<BDB::poll_cb> or any of that stuff (you still
21 can, but this module will do it in case you don't).
22
23 The AnyEvent watcher can be disabled by executing C<undef
24 $AnyEvent::BDB::WATCHER>. Please notify the author of when and why you
25 think this was necessary.
26
27 =cut
28
29 package AnyEvent::BDB;
30
31 use strict;
32 no warnings;
33
34 use AnyEvent ();
35 use BDB ();
36
37 use base Exporter::;
38
39 our $VERSION = '1.1';
40 our $WATCHER;
41
42 my $guard = AnyEvent::post_detect {
43 $WATCHER = AnyEvent->io (fh => BDB::poll_fileno, poll => 'r', cb => \&BDB::poll_cb);
44 };
45 $WATCHER ||= $guard;
46
47 BDB::_on_next_submit \&AnyEvent::detect;
48
49 =head1 SEE ALSO
50
51 L<AnyEvent>, L<Coro::BDB> (for a more natural syntax).
52
53 =head1 AUTHOR
54
55 Marc Lehmann <schmorp@schmorp.de>
56 http://home.schmorp.de/
57
58 =cut
59
60 1
61