Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/env perl
use strict;
use AE;use EV;
use Guard;
use Time::HiRes;
use POSIX 'strftime';
sub ae_loop(&&$$);
@Mons
Mons / cv.pl
Created March 18, 2014 12:20
AnyEvent cv
#!/usr/bin/env perl
use strict;
use 5.010;
use AnyEvent;
use Time::HiRes 'time';
sub async (&) {
my $code = shift;
my $t;$t = AE::timer 0,0,sub { undef $t;$code->(); }
@Mons
Mons / loop.pl
Created March 18, 2014 12:06
AnyEvent loop
#!/usr/bin/env perl
use strict;
use 5.010;
use AnyEvent;
use AnyEvent::HTTP;
use Time::HiRes 'time';
my $records = [ (1)x4e3 ];
my $i = 0;
@Mons
Mons / ev-ares.c
Created September 22, 2013 11:42
c-ares + libev gcc -lev -lcares async_dns.c
#include <ev.h>
#include <ares.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdarg.h>
--- LAPHLibs/MD5.lua 2013-09-14 17:35:11.195354277 +0400
+++ MD5.lua 2013-09-14 18:00:48.844139663 +0400
@@ -9,6 +9,8 @@
local lshift = bit.lshift
-require "memutils"
-require "stringzutils"
+dofile("memutils.lua")
+dofile("stringzutils.lua")
+--require "memutils"
$job = sub {
tcp_connect …, sub {
my $fh = shift or warn "failed: $!";
my $h = AnyEvent::Handle->new(
fh => $fh,
on_error => sub { ... },
);
my $id = int(rand(0xffffffff));
my $body = ...;
$h->push_write( pack('VVV',1,length $body, $id) );
if avd == nil then
avd = { version = 1.0 };
else
avd.version = 1.0
end
-- work with sessions user
function avd.session ()
box.fiber.detach()
box.fiber.name("avd.session")
if gr == nil then
gr = { version = 1.0 };
else
gr.version = 1.0
end
-- gr['defschema'] = '1s30s 1s7d 1m3M'
gr['defschema'] = '1s30s'
gr['defagg'] = 'avg'
gr.port = 22003
@Mons
Mons / unidecodes
Last active December 16, 2015 15:29
Unicode transliterations
0020 # SPACE
0021 ! # EXCLAMATION MARK
0022 " # QUOTATION MARK
0023 # # NUMBER SIGN
0024 $ # DOLLAR SIGN
0025 % # PERCENT SIGN
0026 & # AMPERSAND
0027 ' # APOSTROPHE
0028 ( # LEFT PARENTHESIS
0029 ) # RIGHT PARENTHESIS
@Mons
Mons / XSTesting.xs
Created November 27, 2012 13:17
Creating closure callback from XS
/*
* Usage:
my $x = XSTesting::makecb("my arg for x");
my $y = XSTesting::makecb("my arg for y");
say $x->();
say $y->();
*/