Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Avoid crashbug23153 | Matthew Sackman | 2010-08-22 | 1 | -2/+2 |
| | |||||
* | ensure and assert that closed handles have last_used_at=undefined | Matthias Radestock | 2010-08-22 | 1 | -7/+12 |
| | | | | | That way it is more obvious which handles should be in the age tree and which shouldn't. | ||||
* | cosmetic | Matthias Radestock | 2010-08-22 | 1 | -3/+3 |
| | |||||
* | make it more obvious that reopen is a with_age_tree in disguise | Matthias Radestock | 2010-08-22 | 1 | -9/+10 |
| | | | | plus some minor cosmetic shuffling | ||||
* | don't traverse age tree unnnecessarily on error in reopen | Matthias Radestock | 2010-08-22 | 1 | -14/+12 |
| | | | | this also makes it clearer what's going on | ||||
* | cosmetic | Matthew Sackman | 2010-08-22 | 1 | -3/+2 |
| | |||||
* | refactor: move open1 into reopen | Matthias Radestock | 2010-08-22 | 1 | -22/+18 |
| | |||||
* | If we've obtained permission to open some fds and that turns out not to work ↵ | Matthew Sackman | 2010-08-22 | 1 | -1/+4 |
| | | | | out, then we should ensure that we inform the server as soon as we stop that the rest remain closed | ||||
* | record for pending items | Matthias Radestock | 2010-08-22 | 1 | -17/+29 |
| | |||||
* | Use foldr instead of foldl to avoid having to do extra reverses | Matthew Sackman | 2010-08-22 | 1 | -11/+9 |
| | |||||
* | always return refs/handles in correct order | Matthias Radestock | 2010-08-22 | 1 | -31/+30 |
| | | | | to improve clarity at the expense of a few list:reverses. | ||||
* | cosmetic | Matthias Radestock | 2010-08-22 | 1 | -7/+7 |
| | |||||
* | always leave at least two fds unobtainable | Matthias Radestock | 2010-08-22 | 1 | -2/+5 |
| | | | | | so that 'copy' can succeed Also, zero-clamp obtain limit | ||||
* | refactor: make new_closed_handle create the Ref and return it | Matthias Radestock | 2010-08-22 | 1 | -19/+18 |
| | |||||
* | merge bug23166 into bug23153 | Matthias Radestock | 2010-08-22 | 1 | -11/+28 |
|\ | |||||
| * | add support for dynamic setting/getting of fhc limitbug23166 | Matthias Radestock | 2010-08-22 | 1 | -11/+28 |
| | | | | | | | | and use that in tests | ||||
* | | Rejigged client side so that it asks for the correct number of fds upfront. | Matthew Sackman | 2010-08-22 | 1 | -60/+94 |
| | | |||||
* | | Modify server logic to deal with requests for multiple fds. Including nice ↵ | Matthew Sackman | 2010-08-21 | 1 | -31/+76 |
| | | | | | | | | pending_queues abstraction. Client logic remains to be done. | ||||
* | | Add infrastructure to server to be able to handle requests for multiple fds | Matthew Sackman | 2010-08-20 | 1 | -13/+16 |
|/ | |||||
* | oopsbug23139 | Matthias Radestock | 2010-08-20 | 1 | -4/+4 |
| | |||||
* | merge heads | Matthias Radestock | 2010-08-20 | 1 | -11/+11 |
|\ | |||||
| * | ensure_mref => track_client andalso cosmetic | Matthew Sackman | 2010-08-20 | 1 | -11/+11 |
| | | |||||
* | | simplification due to the fact that we always request closing of all | Matthias Radestock | 2010-08-20 | 1 | -7/+5 |
| | | |||||
* | | cosmetic | Matthias Radestock | 2010-08-20 | 1 | -8/+8 |
|/ | |||||
* | Convert fhc to use an ets table with record per client which amalgamates ↵ | Matthew Sackman | 2010-08-20 | 1 | -145/+135 |
| | | | | several of the previous state entries | ||||
* | Given the clients are demanded to close all open fds when asked to, them ↵ | Matthew Sackman | 2010-08-20 | 1 | -10/+9 |
| | | | | sending a boolean is irrelvant now | ||||
* | If we sent an age of 0 to clients, make sure we do not send more ages of 0 ↵ | Matthew Sackman | 2010-08-20 | 1 | -39/+58 |
| | | | | | | to the same clients until they've actually closed all their handles. This ensures that as more requests come in once we're low on fds, we don't send hundreds of 0 ages to the same clients erroneously. It also means that we always target the correct number of *unique* clients to ask to close their fds, which avoids thrashing the same clients and improves performance markedly. Also, if on open, we send "close" back to the client, that client *is* blocked (actually, due to have 0 opens) as we know it'll close, send us some closed msgs and then re do the open call. Thus we shouldn't be sending it any set maximum age messages. | ||||
* | refactor | Matthias Radestock | 2010-08-19 | 1 | -16/+23 |
| | |||||
* | cosmetic | Matthias Radestock | 2010-08-19 | 1 | -11/+11 |
| | |||||
* | Some essential assertions | Matthew Sackman | 2010-08-19 | 1 | -5/+5 |
| | |||||
* | More meaningful variable name | Matthew Sackman | 2010-08-19 | 1 | -2/+2 |
| | |||||
* | Whoops | Matthew Sackman | 2010-08-19 | 1 | -1/+1 |
| | |||||
* | Reworked substantially | Matthew Sackman | 2010-08-19 | 1 | -88/+117 |
| | |||||
* | Merging default into bug 23139 (substantial debitrot) | Matthew Sackman | 2010-08-19 | 1 | -33/+41 |
|\ | |||||
| * | The solution is very simple: In the case where the fhc sends out requests to ↵ | Matthew Sackman | 2010-08-17 | 1 | -1/+3 |
| | | | | | | | | close file handles, the clients might respond very quickly. The fhc will then gather these responses (say, just updates, not closes) and then will sit there for 2 seconds until the timer goes off. Thus the solution is just to subtract the timer period from the calculated average: i.e. the expression is to say 'close file handles that haven't been used for N seconds from NOW' rather than the previous 'close file handles that haven't been used for N seconds from NOW - 2 seconds ago'. This works very nicely and whilst the fhc can get quite busy when there are more users of file handles than there are file handles available, that is hardly surprising, and the fact is starvation is prevented and processes are promptly serviced | ||||
| * | Track blocked pids explicitly | Matthew Sackman | 2010-08-17 | 1 | -27/+42 |
| | | |||||
* | | Merging bug 23138 into default | Matthew Sackman | 2010-08-19 | 1 | -84/+121 |
|\ \ | |||||
| * | | once again allow use of fhc w/o registeringbug23138 | Matthias Radestock | 2010-08-19 | 1 | -4/+7 |
| | | | |||||
| * | | rewrite | Matthias Radestock | 2010-08-19 | 1 | -101/+91 |
| |/ | |||||
| * | Correct monitoring and actions upon DOWN messages. Note this is especially ↵ | Matthew Sackman | 2010-08-17 | 1 | -65/+105 |
|/ | | | | subtle for obtains, which effectively implicitly allocates temporarily to the blocked caller (FromPid) whilst monitoring it, and then transfers this to the ForPid when possible. Note the ForPid can die before the obtains is processed, which which point the FromPid must be replied to immediately. | ||||
* | obtain_and_release_on_death => obtain, and minor refactor of tcp acceptorbug23135 | Matthew Sackman | 2010-08-17 | 1 | -13/+11 |
| | |||||
* | Combine obtains and release_on_death | Matthew Sackman | 2010-08-17 | 1 | -27/+30 |
| | |||||
* | Minor correctionsbug23132 | Matthew Sackman | 2010-08-17 | 1 | -4/+5 |
| | |||||
* | cosmetic | Matthias Radestock | 2010-08-16 | 1 | -1/+1 |
| | |||||
* | tweak | Matthias Radestock | 2010-08-16 | 1 | -2/+2 |
| | |||||
* | tweak | Matthias Radestock | 2010-08-16 | 1 | -5/+5 |
| | |||||
* | tweak | Matthias Radestock | 2010-08-16 | 1 | -1/+1 |
| | |||||
* | obtain_limit can be 'infinity' | Matthias Radestock | 2010-08-16 | 1 | -1/+1 |
| | |||||
* | cosmetic | Matthias Radestock | 2010-08-16 | 1 | -1/+1 |
| | |||||
* | refactor: incorporate limit checking into maybe_reduce | Matthias Radestock | 2010-08-16 | 1 | -26/+22 |
| |