Commit e7c182a
authored
refactor socket pool (#1484)
1. define a new interface ```ISocketPool``` that supports connection grouping by user-defined keys, in addition to Endpoints
2. allow for user-defined callback for connection heartbeat, as construction argument
3. support TCP-Keepalive
4. re-design the implementation to support these new features
5. optimization of the data structure to eliminate redundant stores of keys (Endpoints), as well as fds
6. merge the timer and the collector thread
The keys (Endpoints) were stored 3 times in: unordered_map (fdmap), StreamListNode, and PooledTCPSocketStream. Now they are stored once in StreamListHead, located at the end of StreamListHead to support variable length. And the unordered_map is changed to unordered_set.
The maintainance routines, e.g. evict(), release(), collect(), etc., are changed accordingly.1 parent c856a10 commit e7c182a
7 files changed
Lines changed: 1334 additions & 128 deletions
File tree
- common
- checksum/test
- include/sys
- net
- test
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
172 | | - | |
| 172 | + | |
173 | 173 | | |
174 | 174 | | |
175 | 175 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
361 | | - | |
| 361 | + | |
362 | 362 | | |
363 | 363 | | |
364 | 364 | | |
| |||
430 | 430 | | |
431 | 431 | | |
432 | 432 | | |
433 | | - | |
| 433 | + | |
434 | 434 | | |
435 | 435 | | |
| 436 | + | |
436 | 437 | | |
437 | 438 | | |
438 | 439 | | |
439 | | - | |
| 440 | + | |
440 | 441 | | |
441 | 442 | | |
442 | 443 | | |
443 | 444 | | |
| 445 | + | |
444 | 446 | | |
445 | 447 | | |
446 | 448 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
59 | 71 | | |
60 | 72 | | |
61 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
0 commit comments