Changeset 7f389a5c for benchmark/io/http
- Timestamp:
- Jul 16, 2020, 2:56:45 PM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 79306383
- Parents:
- 0aec496
- Location:
- benchmark/io/http
- Files:
-
- 2 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
benchmark/io/http/main.cfa
r0aec496 r7f389a5c 7 7 extern "C" { 8 8 #include <sys/socket.h> 9 #include <sys/types.h>10 9 #include <netinet/in.h> 11 10 } … … 18 17 #include "filecache.hfa" 19 18 #include "options.hfa" 19 #include "parseargs.hfa" 20 20 #include "worker.hfa" 21 21 … … 57 57 int main( int argc, char * argv[] ) { 58 58 int port = 8080; 59 int ret = 0;60 59 int backlog = 10; 61 60 int nprocs = 1; … … 66 65 //=================== 67 66 // Parse args 67 static cfa_option opt[] = { 68 {'p', "port", "Port the server will listen on", port}, 69 {'c', "cpus", "Number of processors to use", nprocs}, 70 {'t', "threads", "Number of worker threads to use", nworkers}, 71 {'b', "accept-backlog", "Maximum number of pending accepts", backlog}, 72 {'B', "channel-size", "Maximum number of accepted connection pending", chan_size} 73 }; 74 int opt_cnt = sizeof(opt) / sizeof(cfa_option); 75 76 char **left; 77 parse_args( argc, argv, opt, opt_cnt, "[OPTIONS] [PATH] -- cforall http server", left ); 78 68 79 69 80 //=================== … … 80 91 } 81 92 93 int ret = 0; 82 94 struct sockaddr_in address; 83 95 int addrlen = sizeof(address); -
benchmark/io/http/worker.cfa
r0aec496 r7f389a5c 7 7 #include <string.h> 8 8 extern "C" { 9 #include <fcntl.h> 9 10 #include <sys/socket.h> 10 11 #include <sys/types.h> 11 #include <linux/fcntl.h>12 #include <linux/stat.h>13 12 #include <netinet/in.h> 14 13 } … … 37 36 ssize_t ret; 38 37 SPLICE1: while(count > 0) { 39 ret = cfa_splice(ans_fd, &offset, this.pipe[1], 0p, count, 5);38 ret = cfa_splice(ans_fd, &offset, this.pipe[1], 0p, count, SPLICE_F_MOVE | SPLICE_F_MORE); 40 39 if( ret < 0 ) { 41 40 if( errno != EAGAIN && errno != EWOULDBLOCK) continue SPLICE1; … … 47 46 size_t in_pipe = ret; 48 47 SPLICE2: while(in_pipe > 0) { 49 ret = cfa_splice(this.pipe[0], 0p, fd, 0p, in_pipe, 5);48 ret = cfa_splice(this.pipe[0], 0p, fd, 0p, in_pipe, SPLICE_F_MOVE | SPLICE_F_MORE); 50 49 if( ret < 0 ) { 51 50 if( errno != EAGAIN && errno != EWOULDBLOCK) continue SPLICE2;
Note: See TracChangeset
for help on using the changeset viewer.