evdispatch 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Manifest.txt +21 -65
- data/ext/revdispatch/dispatch.cc +3 -0
- data/ext/revdispatch/extconf.rb +50 -32
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev++.h +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev.h +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_epoll.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_kqueue.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_poll.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_port.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_select.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_vars.h +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_win32.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/ev_wrap.h +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/event.c +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/libev-3.31/event.h +0 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/src/ev_dispatch.cc +6 -17
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/src/ev_dispatch.h +0 -0
- data/ext/revdispatch/libdispatch/src/ev_embed.c +6 -0
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/src/ev_http.cc +11 -8
- data/ext/revdispatch/{libdispatch-0.1 → libdispatch}/src/ev_http.h +0 -0
- data/lib/evdispatch/version.rb +2 -2
- data/website/index.html +7 -1
- data/website/index.txt +6 -0
- metadata +23 -67
- data/ext/revdispatch/libdispatch-0.1/Changelog +0 -12
- data/ext/revdispatch/libdispatch-0.1/LICENSE +0 -0
- data/ext/revdispatch/libdispatch-0.1/Makefile.am +0 -10
- data/ext/revdispatch/libdispatch-0.1/Makefile.in +0 -636
- data/ext/revdispatch/libdispatch-0.1/README +0 -3
- data/ext/revdispatch/libdispatch-0.1/aclocal.m4 +0 -7268
- data/ext/revdispatch/libdispatch-0.1/autogen.sh +0 -11
- data/ext/revdispatch/libdispatch-0.1/config.guess +0 -1516
- data/ext/revdispatch/libdispatch-0.1/config.h.in +0 -112
- data/ext/revdispatch/libdispatch-0.1/config.sub +0 -1626
- data/ext/revdispatch/libdispatch-0.1/configure +0 -21779
- data/ext/revdispatch/libdispatch-0.1/configure.ac +0 -42
- data/ext/revdispatch/libdispatch-0.1/depcomp +0 -584
- data/ext/revdispatch/libdispatch-0.1/install-sh +0 -507
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/Changes +0 -78
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/LICENSE +0 -25
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/Makefile.am +0 -18
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/Makefile.in +0 -677
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/README +0 -130
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/aclocal.m4 +0 -7268
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/autogen.sh +0 -6
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/config.guess +0 -1516
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/config.h.in +0 -112
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/config.sub +0 -1626
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/configure +0 -21500
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/configure.ac +0 -18
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/ev.3 +0 -3344
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/ev.pod +0 -3268
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/install-sh +0 -294
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/libev.m4 +0 -28
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/ltmain.sh +0 -6871
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/missing +0 -336
- data/ext/revdispatch/libdispatch-0.1/libev-3.31/mkinstalldirs +0 -111
- data/ext/revdispatch/libdispatch-0.1/ltmain.sh +0 -6930
- data/ext/revdispatch/libdispatch-0.1/missing +0 -367
- data/ext/revdispatch/libdispatch-0.1/src/Makefile.am +0 -11
- data/ext/revdispatch/libdispatch-0.1/src/Makefile.in +0 -485
- data/ext/revdispatch/libdispatch-0.1/test/Makefile.am +0 -30
- data/ext/revdispatch/libdispatch-0.1/test/Makefile.in +0 -623
- data/ext/revdispatch/libdispatch-0.1/test/key_test.cc +0 -52
- data/ext/revdispatch/libdispatch-0.1/test/next_test.cc +0 -84
- data/ext/revdispatch/libdispatch-0.1/test/opt_test.cc +0 -70
- data/ext/revdispatch/libdispatch-0.1/test/pipe_test.cc +0 -241
- data/ext/revdispatch/libdispatch-0.1/test/post_test.cc +0 -66
- data/ext/revdispatch/libdispatch-0.1/test/stress_test.cc +0 -62
@@ -1,66 +0,0 @@
|
|
1
|
-
#include "ev_dispatch.h"
|
2
|
-
#include "ev_http.h"
|
3
|
-
#include <sys/select.h>
|
4
|
-
#include <errno.h>
|
5
|
-
|
6
|
-
using namespace EVD;
|
7
|
-
|
8
|
-
|
9
|
-
// catch SIGINT to kill process
|
10
|
-
static void SIGINT_handler(int sig)
|
11
|
-
{
|
12
|
-
exit(sig);
|
13
|
-
}
|
14
|
-
|
15
|
-
static void run_tests( Dispatch &dispatcher, int count )
|
16
|
-
{
|
17
|
-
time_t start_time = time(NULL);
|
18
|
-
|
19
|
-
// tell the request to stream the response over this file descriptor
|
20
|
-
HttpRequest *req = new HttpRequest( dispatcher, "http://127.0.0.1:4044/test_post_length" );
|
21
|
-
req->set_opt("post", "hello there world");
|
22
|
-
|
23
|
-
request_t id = dispatcher.request( req );
|
24
|
-
|
25
|
-
struct timeval start;
|
26
|
-
Timer::current_time(&start);
|
27
|
-
|
28
|
-
while( dispatcher.wait_for_response_by_id( id, Timer(0,500*1000*1000) ) ) {
|
29
|
-
if( Timer::elapsed_time( &start ) > 2.0 ){
|
30
|
-
printf("exceeded max elasped time...\n");
|
31
|
-
break;
|
32
|
-
}
|
33
|
-
}
|
34
|
-
|
35
|
-
HttpResponse *res = (HttpResponse *)dispatcher.response_for( id );
|
36
|
-
printf("response: %s, in %.5lf seconds of Content-Length: %d bytes\n%s%s\n", res->name.c_str(), res->response_time, res->body.length(), res->m_header.c_str(), res->body.c_str() );
|
37
|
-
delete res;
|
38
|
-
}
|
39
|
-
|
40
|
-
int main(int argc, char **argv)
|
41
|
-
{
|
42
|
-
Dispatch dispatcher;
|
43
|
-
|
44
|
-
if (signal(SIGINT, SIGINT_handler) == SIG_ERR) {
|
45
|
-
printf("SIGINT install error\n");
|
46
|
-
exit(1);
|
47
|
-
}
|
48
|
-
|
49
|
-
if( !dispatcher.start() ){
|
50
|
-
fprintf( stderr, "Failed to start up dispatcher\n" );
|
51
|
-
return 1;
|
52
|
-
}
|
53
|
-
|
54
|
-
//printf( "dispatcher thread running...\n" );
|
55
|
-
|
56
|
-
struct timeval start_time;
|
57
|
-
Timer::current_time(&start_time);
|
58
|
-
|
59
|
-
run_tests( dispatcher, 10 );
|
60
|
-
|
61
|
-
//printf( "total time: %.5f seconds\n", Timer::elapsed_time( &start_time ) );
|
62
|
-
|
63
|
-
dispatcher.stop();
|
64
|
-
|
65
|
-
return 0;
|
66
|
-
}
|
@@ -1,62 +0,0 @@
|
|
1
|
-
#include "ev_dispatch.h"
|
2
|
-
#include "ev_http.h"
|
3
|
-
|
4
|
-
using namespace EVD;
|
5
|
-
|
6
|
-
|
7
|
-
// catch SIGINT to kill process
|
8
|
-
static void SIGINT_handler(int sig)
|
9
|
-
{
|
10
|
-
exit(sig);
|
11
|
-
}
|
12
|
-
|
13
|
-
static int run_test(Dispatch& dispatcher)
|
14
|
-
{
|
15
|
-
if( !dispatcher.start() ){
|
16
|
-
fprintf( stderr, "Failed to start up dispatcher\n" );
|
17
|
-
return 1;
|
18
|
-
}
|
19
|
-
|
20
|
-
printf( "dispatcher thread running...\n" );
|
21
|
-
std::vector<request_t> ids;
|
22
|
-
int TRIALS = 100;
|
23
|
-
|
24
|
-
for( int i = 0; i < TRIALS; ++i ) {
|
25
|
-
request_t id;
|
26
|
-
if( i % 2 ) {
|
27
|
-
id = dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/bytes/1000" ) );
|
28
|
-
}
|
29
|
-
else {
|
30
|
-
id = dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/bytes/10" ) );
|
31
|
-
}
|
32
|
-
ids.push_back( id );
|
33
|
-
}
|
34
|
-
Response *res;
|
35
|
-
for( int i = 0; i < ids.size(); ++i ) {
|
36
|
-
request_t id = ids[i];
|
37
|
-
while( dispatcher.wait_for_response_by_id( id, Timer(1,5) ) ){
|
38
|
-
printf("waiting for %d...\n", i);
|
39
|
-
}
|
40
|
-
res = dispatcher.response_for( id );
|
41
|
-
if( res ) {
|
42
|
-
printf("Recieved response from 2: %s, Content-Length: %d\n", res->name.c_str(), res->body.length() );
|
43
|
-
delete res;
|
44
|
-
}
|
45
|
-
}
|
46
|
-
dispatcher.stop();
|
47
|
-
return 0;
|
48
|
-
}
|
49
|
-
|
50
|
-
int main(int argc, char **argv)
|
51
|
-
{
|
52
|
-
Dispatch dispatcher;
|
53
|
-
if (signal(SIGINT, SIGINT_handler) == SIG_ERR) {
|
54
|
-
printf("SIGINT install error\n");
|
55
|
-
return 1;
|
56
|
-
}
|
57
|
-
for( int i = 0; i < 10; ++i ) {
|
58
|
-
run_test(dispatcher);
|
59
|
-
}
|
60
|
-
|
61
|
-
return 0;
|
62
|
-
}
|