How to tell if a request was made blocking or non blocking

57 views
Skip to first unread message

Kit Peters

unread,
Oct 1, 2015, 9:21:34 PM10/1/15
to Mojolicious
I need to identify whether a given request was made in a blocking or non blocking fashion. I figure I ought to do this in the Mojo::UserAgent "start" event, e.g.:

my $ua = Mojo::UserAgent->new;
$ua
->on(
start => sub {

   my ( $ua, $tx ) = @_;
   
# TODO: Figure out how to tell if $tx->req is blocking or no
}


But I don't know how.

KP

Kit Peters

unread,
Oct 1, 2015, 11:32:22 PM10/1/15
to Mojolicious
I'm told by jberger on #mojo that you can't. There's no way to tell if a given request is blocking or not. 

Dmitry L.

unread,
Oct 5, 2015, 2:38:49 PM10/5/15
to mojol...@googlegroups.com
I don't know what you exactly need, but with your example it is
possible (and yes, it is dirty):

# Define own start
my $orig_start = \&Mojo::UserAgent::start;
*Mojo::UserAgent::start = sub {
my ($ua, $tx, $cb) = @_;
$tx->{__nb} = 1 if $cb;
$orig_start->(@_);
};

my $ua = Mojo::UserAgent->new;
$ua->on(start => sub {
my ($ua, $tx) = @_;

warn "Non-blocking" if exists $tx->{__nb};
} );
> --
> You received this message because you are subscribed to the Google Groups
> "Mojolicious" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to mojolicious...@googlegroups.com.
> To post to this group, send email to mojol...@googlegroups.com.
> Visit this group at http://groups.google.com/group/mojolicious.
> For more options, visit https://groups.google.com/d/optout.



--
//wbr, Dmitry L.

Kit Peters

unread,
Oct 9, 2015, 4:56:52 PM10/9/15
to mojol...@googlegroups.com

That resembles what I ended up doing,  which was to override  Mojo::UserAgent->start in my module.

You received this message because you are subscribed to a topic in the Google Groups "Mojolicious" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/mojolicious/cHL2wr2-6yc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to mojolicious...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages