=head1 NAME

AnyEvent::Impl::Cocoa - AnyEvent adaptor for Cocoa::EventLoop


    use AnyEvent;
    use Cocoa::EventLoop;
    # do something


This module provides NSRunLoop support to AnyEvent.

NSRunLoop is an event loop for Cocoa applications, wrapped by
L<Cocoa::EventLoop>. By using this module, you can use Cocoa based API in
your AnyEvent application, or AnyEvent within Cocoa applications.

It does not support blocking waits.

=head1 BUGS

Right now, L<Cocoa::EventLoop> (and this module) are in an early
development phase and has some shortcomings and likely bugs.

For example, there seems to be no way to just handle a single event
with Cocoa (is there nothing they can implement properly?), so this
module currently wakes up at least ten times a second when waiting for
events. Also, events caused by timers might get delayed by up to 0.1


package AnyEvent::Impl::Cocoa;

use AnyEvent (); BEGIN { AnyEvent::common_sense }

use Cocoa::EventLoop;

sub io {
   my ($class, %arg) = @_;

   Cocoa::EventLoop->io (%arg)

sub timer {
   my ($class, %arg) = @_;

   Cocoa::EventLoop->timer (%arg)

# does not support blocking waits

#sub loop {
#   Cocoa::EventLoop->run;

=head1 AUTHORS

Daisuke Murase <typester@cpan.org>, Marc Lehmann <schmorp@schmorp.de>.


   Copyright (c) 2009 by KAYAC Inc.
   Copyright (c) 2010,2011 by Marc Lehmann <schmorp@schmorp.de>