Date | Commit message (Collapse) |
|
speling ficks and less confusing #initialize documentation
|
|
We're now able to configure the number of threads independently
of worker_connections.
|
|
coolio_thread_pool, neverblock both use it, and
xepoll_thread_pool will support it next, too.
|
|
Just the test name is irrelevant
|
|
This is probably friendlier on server resources in the worst
case than XEpollThreadSpawn but may perform worse in the client
client-visible way, too.
|
|
Fixed in kgio 2.4.0 now
This reverts commit a1168e7d2bfe182896f139d051ef099616fd1646.
|
|
No need for a string comparison
|
|
kgio 2.4.0 has some 1.9.3dev fixes which affect us
|
|
We only poll for one event (EPOLLIN/EPOLLOUT) at a time,
so there's no need to actually check since they're too
rare.
|
|
worker_yield is safer than setting a threshold with multiple
acceptors when thread limits are hit. Also, avoid sleep +
Thread#run since it's potentially racy if threads are extremely
unfairly scheduled.
Same things applied to xepoll_thread_spawn.
|
|
Infinite sleep is too dangerous due to possible race conditions,
so use worker_yield which is safer and cheaper in the general
case. We can also avoid sleeping on new threads by only
spawning when the client module is included.
|
|
Otherwise pipeline_ready can false positive on us
|
|
shorter line and 3 lines of code killed!
|
|
Not that it's actually used, right now.
|
|
|
|
Newer versions should be better
|
|
More sharing, faster startups, and most importantly,
better error reporting if some things are missing.
|
|
It *can* have as many threads as it does idle connections.
|
|
We won't forget to reset defaults on SIGHUP anymore.
|
|
Too confusing otherwise...
|
|
We're changing our default to 1K buffers to save memory. This
should reduce memory usage of idle clients and lower pressure on
the MRI GC. Rails applications using session cookies (the
default) may want to up this to 2K or more.
|
|
Just use regular autoload, now. Less guesswork.
|
|
pavinging the way for changing MODEL_WORKER_CONNECTIONS
|
|
Rainbows! is a bit bigger than Unicorn and usually requires
being sandboxed, too.
|
|
HTTP headers are usually smaller than 4K, so 16K was way too
much for most users and often caused unnecessary GC runs.
EventMachine and Coolio models can all share the same initial
read buffer, so it's less urgent that they get this lowered for
now...
|
|
This one actually has a realistic chance of running
hundreds/thousands of clients, and 32K per-client is
a huge amount.
|
|
Epoll#wait and epoll_wait(2) timeouts are in milliseconds,
not seconds. This affects xepoll, too.
|
|
Noticed under 1.8.7
|
|
Whee! This is going to be awesome.
|
|
They're probably ready for general use in a very limited
capacity...
|
|
Too much NIH and too fragile.
|
|
|
|
|
|
No need to expose things that don't need exposing.
|
|
This may change again in the future, but it
paves the way for simplifying this code...
|
|
This should make code review easier.
|
|
Might as well, threads are free and cheap on 64-bit
|
|
In case people try to do C10K, make life easier for them.
|
|
Thread-switching sometimes takes too long under YARV, so we
force a switch since the watchdog thread is lower-priority.
|
|
Should be fixed in 1.9.3 and/or future Kgio...
|
|
Might as well use the latest and greatest.
|
|
Ugh the old way was gross.
|
|
Revactor doesn't seem to work under 1.9.3dev, and Revactor is
dead upstream.
|
|
|
|
This attempts to fix all the danger associated with using
Thread#raise. Hopefully I succeeded.
Note: this logic _cannot_ be used to fix the timeout.rb
module in the Ruby standard library, that one needs to
allow nested timeouts (which seems impossible).
|
|
It's in the JoinThreads module now
|
|
|
|
They're not bad with slow clients a previously thought.
|
|
No need to obfuscate what it's doing
|
|
Run under 1.9.3dev
|