ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/lib/AnyEvent/Debug.pm
(Generate patch)

Comparing AnyEvent/lib/AnyEvent/Debug.pm (file contents):
Revision 1.29 by root, Thu Aug 25 04:02:33 2011 UTC vs.
Revision 1.30 by root, Thu Aug 25 04:13:44 2011 UTC

97 AnyEvent::Socket::tcp_server $_[0], $_[1], sub { 97 AnyEvent::Socket::tcp_server $_[0], $_[1], sub {
98 my ($fh, $host, $port) = @_; 98 my ($fh, $host, $port) = @_;
99 99
100 syswrite $fh, "Welcome, $host:$port, use 'help' for more info!\015\012> "; 100 syswrite $fh, "Welcome, $host:$port, use 'help' for more info!\015\012> ";
101 my $rbuf; 101 my $rbuf;
102
103 my $logger = new AnyEvent::Log::Ctx
104 log_cb => sub {
105 syswrite $fh, shift;
106 0
107 };
108
109 my $logger_guard = AnyEvent::Util::guard {
110 $AnyEvent::Log::COLLECT->detach ($logger);
111 };
112 $AnyEvent::Log::COLLECT->attach ($logger);
113
102 local $TRACE = 0; 114 local $TRACE = 0;
103 my $rw; $rw = AE::io $fh, 0, sub { 115 my $rw; $rw = AE::io $fh, 0, sub {
104 my $len = sysread $fh, $rbuf, 1024, length $rbuf; 116 my $len = sysread $fh, $rbuf, 1024, length $rbuf;
117
118 $logger_guard if 0; # reference it
105 119
106 if (defined $len ? $len == 0 : $! != Errno::EAGAIN) { 120 if (defined $len ? $len == 0 : $! != Errno::EAGAIN) {
107 undef $rw; 121 undef $rw;
108 } else { 122 } else {
109 while ($rbuf =~ s/^(.*)\015?\012//) { 123 while ($rbuf =~ s/^(.*)\015?\012//) {
115 syswrite $fh, "sorry, no... if you want to execute exit, try CORE::exit.\015\012"; 129 syswrite $fh, "sorry, no... if you want to execute exit, try CORE::exit.\015\012";
116 } else { 130 } else {
117 package AnyEvent::Debug::shell; 131 package AnyEvent::Debug::shell;
118 132
119 no strict 'vars'; 133 no strict 'vars';
134 local $LOGGER = $logger;
120 my $old_stdout = select $fh; 135 my $old_stdout = select $fh;
121 local $| = 1; 136 local $| = 1;
122 137
123 my @res = eval $line; 138 my @res = eval $line;
124 139
141 } 156 }
142} 157}
143 158
144{ 159{
145 package AnyEvent::Debug::shell; 160 package AnyEvent::Debug::shell;
161
162 our $LOGGER;
146 163
147 sub help() { 164 sub help() {
148 <<EOF 165 <<EOF
149help this command 166help this command
150wr [level] sets wrap level to level (or toggles if missing) 167wr [level] sets wrap level to level (or toggles if missing)
217 "tracing for newly created watchers is now disabled." 234 "tracing for newly created watchers is now disabled."
218 } 235 }
219 } 236 }
220 237
221 sub v { 238 sub v {
222 require AnyEvent::Log; 239 $LOGGER->level (@_ ? $_[0] : $LOGGER->[1] ? 0 : 9);
223 240
224 $AnyEvent::Log::FILTER->level (@_ ? $_[0] : $AnyEvent::Log::FILTER->[1] ? 0 : 9); 241 "verbose logging is now " . ($LOGGER->[1] ? "enabled" : "disabled") . "."
225
226 "verbosity level " . (@_ ? "set to $_[0]" : "toggled") . "."
227 } 242 }
228} 243}
229 244
230=item AnyEvent::Debug::wrap [$level] 245=item AnyEvent::Debug::wrap [$level]
231 246

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines