Changes in benchmark/io/http/main.cfa [ce98816:86c12d65]
- File:
-
- 1 edited
-
benchmark/io/http/main.cfa (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
benchmark/io/http/main.cfa
rce98816 r86c12d65 234 234 int addrlen = prepaddr(address); 235 235 236 int server_fd = listener(address, addrlen); 236 int server_fd; 237 if(!options.socket.manyreuse) { 238 server_fd = listener(address, addrlen); 239 } 237 240 238 241 //=================== … … 271 274 workers[i].pipe[0] = fds[pipe_off + (i * 2) + 0]; 272 275 workers[i].pipe[1] = fds[pipe_off + (i * 2) + 1]; 273 workers[i].sockfd = server_fd;276 workers[i].sockfd = options.socket.manyreuse ? listener(address, addrlen) : server_fd; 274 277 workers[i].addr = (struct sockaddr *)&address; 275 278 workers[i].addrlen = (socklen_t*)&addrlen; … … 311 314 312 315 sout | "Shutting down socket..." | nonl; flush( sout ); 313 int ret = shutdown( server_fd, SHUT_RD ); 314 if( ret < 0 ) { 315 abort( "shutdown error: (%d) %s\n", (int)errno, strerror(errno) ); 316 if(options.socket.manyreuse) { 317 for(i; options.clopts.nworkers) { 318 ret = shutdown( workers[i].sockfd, SHUT_RD ); 319 if(ret < 0) abort( "close socket %d error: (%d) %s\n", i, (int)errno, strerror(errno) ); 320 } 321 } 322 else { 323 ret = shutdown( server_fd, SHUT_RD ); 324 if( ret < 0 ) { 325 abort( "shutdown error: (%d) %s\n", (int)errno, strerror(errno) ); 326 } 316 327 } 317 328 sout | "done"; … … 320 331 // Close Socket 321 332 sout | "Closing Socket..." | nonl; flush( sout ); 322 ret = close( server_fd ); 323 if(ret < 0) { 324 abort( "close socket error: (%d) %s\n", (int)errno, strerror(errno) ); 333 if(options.socket.manyreuse) { 334 for(i; options.clopts.nworkers) { 335 ret = close(workers[i].sockfd); 336 if(ret < 0) abort( "close socket %d error: (%d) %s\n", i, (int)errno, strerror(errno) ); 337 } 338 } 339 else { 340 ret = close( server_fd ); 341 if(ret < 0) { 342 abort( "close socket error: (%d) %s\n", (int)errno, strerror(errno) ); 343 } 325 344 } 326 345 sout | "done";
Note:
See TracChangeset
for help on using the changeset viewer.