43 Commits

Author SHA1 Message Date
Benoit Chesneau
3bc53767bd fix manifest to reflect change in README name 2010-01-11 00:55:02 +01:00
Benoit Chesneau
4f5548e8bd handle all signals like unicorn or nginx :
http://unicorn.bogomips.org/SIGNALS.html

TODO: implementing daemonized mode & config file
2010-01-11 00:38:25 +01:00
Benoit Chesneau
786c97442d useless info 2010-01-10 20:27:37 +01:00
Benoit Chesneau
0d04e7bf7f Merge remote branch 'davisp/master' 2010-01-10 19:54:22 +01:00
Benoit Chesneau
a98d9d9e3e handle HUP. There are still dead processes after HUP that need to be
removed.
2010-01-10 19:53:34 +01:00
Paul J. Davis
951cb590ab Fix the README to use better reST formatting.
This helps displaying on github by renaming .txt -> .rst as well as on
PyPi.
2010-01-10 11:50:37 -05:00
Benoit Chesneau
fb61e9b6ba fix issue #3. Waiting proper handling of HUP, quit gunicorn. 2010-01-10 15:55:21 +01:00
Benoit Chesneau
ac8abbe448 trap SIGCHLD and wake up master. fix issue 3. HUP isn't correctly
handled yet on master.
2010-01-10 15:13:42 +01:00
Curt Micol
7c30c1e9ae Fix crashing issue with signals TTIN and TTOU. Also clear out zombie procs left by those signals. 2010-01-10 07:08:05 -05:00
Benoit Chesneau
7cf859a5c0 self.alive is'nt anymore a file descriptor 2010-01-10 11:37:18 +01:00
Benoit Chesneau
004f441d59 revert a change. fix worker kill 2010-01-10 10:15:05 +01:00
Benoit Chesneau
0b8d51d116 update readme & usage 2009-12-27 15:02:07 +01:00
Benoit Chesneau
a925c045be easy launch of django application. 2009-12-27 14:38:02 +01:00
Benoit Chesneau
4bf5cb7bf5 typo 2009-12-27 14:18:58 +01:00
Benoit Chesneau
6730cb2b03 quick usage help 2009-12-27 14:15:52 +01:00
Benoit Chesneau
6cda6a868e fix http parser, support Accept: 100-continue, fixes in worker. Update
license headers
2009-12-27 12:23:55 +01:00
Benoit Chesneau
cb79c8514d lot of fixes. nonblocking socket need to be handled correctly though. 2009-12-22 02:48:30 +01:00
Benoit Chesneau
7fccf32c06 better response 2009-12-21 21:58:38 +01:00
Benoit Chesneau
f1cb61564e remove useless files and ignore them 2009-12-21 19:48:49 +01:00
Benoit Chesneau
045b3127cc add setup file, fixx license 2009-12-21 19:47:07 +01:00
Benoit Chesneau
003c09ce1f add missing element 2009-12-17 22:33:14 +01:00
Benoit Chesneau
8d53f458db we don't need to handle errors here since they are already handled in
worker
2009-12-14 01:56:36 +01:00
Benoit Chesneau
753f3bcf1a no buffer read. Instead of using socket fileobject , read it directly
using our own stream class
2009-12-14 01:50:23 +01:00
Paul J. Davis
89bae0daf2 More work on signals.
I removed some of the signals that are more advanced than I want to
write. After we get things working solid we'll need to go back and
revisit the hot code swapping, halting workers, and log handling.

There's still a weird racey lockup when hitting it with ab. I don't have
httperf installed on this machine so I can't try a different tool to see
if its just ab acting weird. I'm pretty sure I've seen ab do this before
so I'm not too concerned.
2009-12-06 01:47:57 -05:00
Paul J. Davis
d5956ed5f3 Fixing the select/accept loop. 2009-12-04 05:09:15 -05:00
Benoit Chesneau
83ebc51520 fix first line parsing and make sure master is killed when ctrl-c is
pressed
2009-12-03 10:38:33 +01:00
Paul J. Davis
34db4a6669 Updates to fix errors under load. 2009-12-03 02:41:50 -05:00
Paul J. Davis
f4f3429d15 Fix test app 2009-12-03 02:16:19 -05:00
Paul J. Davis
5c5dbbd603 Readded Benoit's HTTP code.
ab works again. As does curl it appears.
2009-12-03 02:14:49 -05:00
Paul J. Davis
1cd1cc3a86 Readd HTTP request processing.
I based this on the BaseHTTPServer request handler class because I had
issues with the other request handler. This one is having issues as well
so I should go back to Benoit's but I'm starting to slide towards sleep.
2009-12-03 01:48:49 -05:00
Paul J. Davis
8be0226763 Some refactoring work.
Remoed alot of code before starting to add more. Trimmed as much as
possible to get to the point that I understood what was going on in each
place.

Split the server code into multiple objects to help my sanity. Arbiter
is now the main class in the master process that keeps track of child
processes and so on and such forth.

The Worker class is responsible for handling incoming requests from the
server socket passed to its constructor.
2009-12-03 01:13:38 -05:00
Benoit Chesneau
701c88c019 fix error 2009-12-03 03:16:59 +01:00
Benoit Chesneau
21d3f7ccd9 working concurrent version. But I think I will rewrite the worker loop
to react on events write/read for sockets so I could  have better
concurrency. Also i'm not sure that the sleep() is enough.

http://www.friendpaste.com/1KVIOzMJGxm0yjv1qprkbf
2009-12-03 03:03:47 +01:00
Benoit Chesneau
9b3704e395 missing files 2009-12-02 20:53:14 +01:00
Benoit Chesneau
a4685eff77 some commit 2009-12-02 20:52:15 +01:00
Benoit Chesneau
93097b74e6 return response now 2009-12-02 19:43:56 +01:00
Benoit Chesneau
90e87c6f0d fix bug, now cores/cpus are used correctly 2009-12-02 17:39:16 +01:00
Benoit Chesneau
b9468919e6 some fixes 2009-12-02 01:12:35 +01:00
Benoit Chesneau
d63890c77a full wsgi environment. 2009-12-01 15:15:27 +01:00
Benoit Chesneau
84d739f1e4 add mssing environ variables 2009-12-01 14:29:40 +01:00
Benoit Chesneau
992b538705 implement request parser object. it isn't useful until i implement the
response and wsgi app passing
2009-12-01 14:11:56 +01:00
Benoit Chesneau
5fd09fa3df tries is fixed in options 2009-11-30 23:09:28 +01:00
Benoit Chesneau
52b950945f initial commit. working connection handler. 2009-11-30 19:24:21 +01:00