Siddarth Kumar
cd18c9b32c
add fallback socket implementation for amd64 cpu ( #1 )
...
This commit updates the `epoll_wait` implementation and adds a fallback implementation incase of x86_64 android devices.
2023-12-14 17:59:18 +05:30
Jakub Sokołowski
2158931305
implement darwin os support
...
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-14 20:42:37 +01:00
Tevin Zhang
00eab0aefc
Add description about the maturity
2019-11-12 18:45:05 +08:00
Tevin Zhang
2b1e77e59f
Fix go.mod
2019-11-12 18:22:24 +08:00
Tevin Zhang
66cd883f5d
Fix indention of example code
2019-11-12 18:22:14 +08:00
Tevin Zhang
dc80b07983
Add CONTRIBUTING.md
2019-11-12 16:53:05 +08:00
Tevin Zhang
84aa2299dc
Add detail about the contribution of @lujjjh
2019-11-12 16:06:07 +08:00
Tevin
5aa79aeb78
Merge pull request #18 from status-im/fix-android
...
Use x/sys/unix instead of syscall to fix EpollWait on Android
2019-11-12 16:03:14 +08:00
Tevin
650050ef9b
Add special thanks to @jakubgs
2019-11-12 15:57:04 +08:00
Tevin
04a3451fa2
Update go.mod
2019-11-12 11:29:27 +08:00
Jakub Sokołowski
8100eb9207
use x/sys/unix instead of syscall to fix EpollWait on Android
...
Signed-off-by: Jakub Sokołowski <jakub@status.im>
2019-11-11 11:47:34 +01:00
Tevin
9f5b7a96d8
Merge pull request #13 from tevino/adjust-bench
...
Adjust benchmark
2019-03-06 16:36:16 +08:00
Tevin Zhang
482e2a9b8c
Test against the latest go
2019-03-06 16:27:45 +08:00
Tevin Zhang
b4b7e90e24
Find an address that will actually timeout in tests by testing
2019-03-06 16:24:31 +08:00
Tevin Zhang
f190c4f619
Run benchmark via Travis CI
2019-03-06 16:24:31 +08:00
Tevin Zhang
45a3fe5ed8
Adjust timeout in benchmark
2019-03-06 16:24:31 +08:00
Tevin
9762d1c917
Merge pull request #12 from frankxyy/patch-1
...
Fix variable name
2019-03-06 11:07:32 +08:00
Yangyang Xu
2d71f9df05
fix variable name
2019-03-06 11:06:19 +08:00
Tevin
d61444948d
Merge pull request #11 from tevino/travis
...
Add Travis CI
2019-02-13 11:08:49 +08:00
Tevin Zhang
0d34068678
Use 10.255.255.1:80 as an always-timeout address
...
Since 10.0.0.0:1 causes ErrConnect(permission denied) instead of ErrTimeout in Travis CI's macOS environment.
2019-02-13 11:05:36 +08:00
Tevin Zhang
6868d911df
Add logging
2019-02-13 11:05:36 +08:00
Tevin Zhang
5cbfc67444
Add Travis CI
2019-02-13 11:05:36 +08:00
Tevin Zhang
793d50316e
Unexport EPOLLET
2019-02-13 10:20:58 +08:00
Tevin Zhang
f79f8fc471
Add comment
2019-02-13 10:20:15 +08:00
Tevin
0fca588859
Merge pull request #10 from tevino/benchmark
...
Add benchmark
2019-02-13 10:14:12 +08:00
Tevin Zhang
b0f2b6a708
Add benchmarks
...
go version go1.11.4 linux/amd64
goos: linux
goarch: amd64
pkg: github.com/tevino/tcp-shaker
BenchmarkPipePoolDummyOK-32 300000 4002 ns/op 660 B/op 16 allocs/op
BenchmarkPipePoolSyncPoolOK-32 300000 3955 ns/op 507 B/op 14 allocs/op
BenchmarkPipePoolDummyErr-32 300000 4026 ns/op 613 B/op 16 allocs/op
BenchmarkPipePoolSyncPoolErr-32 300000 3973 ns/op 526 B/op 14 allocs/op
BenchmarkPipePoolDummyTimeout-32 300000 3954 ns/op 613 B/op 16 allocs/op
BenchmarkPipePoolSyncPoolTimeout-32 300000 3895 ns/op 507 B/op 14 allocs/op
BenchmarkResultPipesMUOK-32 300000 4692 ns/op 478 B/op 12 allocs/op
BenchmarkResultPipesSyncMapOK-32 300000 3902 ns/op 506 B/op 14 allocs/op
BenchmarkResultPipesMUErr-32 300000 4399 ns/op 478 B/op 12 allocs/op
BenchmarkResultPipesSyncMapErr-32 300000 3993 ns/op 508 B/op 14 allocs/op
BenchmarkResultPipesMUTimeout-32 300000 4473 ns/op 478 B/op 12 allocs/op
BenchmarkResultPipesSyncMapTimeout-32 300000 3947 ns/op 507 B/op 14 allocs/op
2019-02-12 19:03:06 +08:00
Tevin Zhang
562d62828d
Add PipePool of different implementations
2019-02-12 18:40:29 +08:00
Tevin Zhang
e298e4beb3
Add ResultPipes of different implementations
2019-02-12 18:40:29 +08:00
Tevin
32a4a549c2
Merge pull request #9 from tevino/refactor
...
Refactor
2019-02-12 16:40:31 +08:00
Tevin Zhang
070a54c143
Print error from CheckingLoop
2019-02-12 16:19:46 +08:00
Tevin Zhang
f00667a79b
WaitReady() before using checker
2019-02-12 16:19:46 +08:00
Tevin Zhang
f3158e873d
Add fds to epoll_ctl error message
2019-02-12 16:19:46 +08:00
Tevin Zhang
62afebf5fa
Add -v for verbose logging
2019-02-12 16:19:20 +08:00
Tevin Zhang
2ef7e36ff8
Fix WaitReady() for nonlinux platform
2019-02-12 15:22:22 +08:00
Tevin Zhang
a72775abcb
Add special thanks
2019-02-12 15:22:22 +08:00
Tevin Zhang
8e82d76788
Ensure safety before reuse of pipe
2019-02-12 15:22:22 +08:00
Tevin Zhang
201333fdee
Remove lock
2019-02-12 15:22:22 +08:00
Tevin Zhang
7c5283d607
Refine doc
2019-02-11 18:42:46 +08:00
Tevin Zhang
a89fc1fe18
Refactor
...
Significant changes:
1. `NewChecker()` accepts no argument, `zeroLinger` is enabled by default
2. Optional parameter `zeroLinger` in `CheckAddr()` turned into `CheckerAddrZeroLinger()`
3. `InitChecker()` -> `CheckingLoop(context)`
4. `ErrNotInitialized` -> `ErrCheckerAlreadyStarted`
5. Fewer system call calling, e.g. `connect()` is called exactly once per check
6. Epoll is now edge-triggered
2019-02-11 17:54:51 +08:00
Tevin
1573d54316
Merge pull request #8 from lujjjh/zerolinger-on-nonlinux
...
Add zeroLinger support for non-Linux platform
2019-01-06 20:04:10 +08:00
lujjjh
c27d2836c6
Add zeroLinger support for POSIX operating systems
2018-05-22 13:16:48 +08:00
Tevin Zhang
2d9369c3f0
Concurrent TCP Checker
2016-12-06 17:23:50 +08:00
Tevin Zhang
ce742af518
Add fake implementation for non-Linux platform
2016-12-06 17:20:41 +08:00
Tevin Zhang
2d25c4a3e0
Retry connect when EINPROGRESS etc is encountered
...
Version older than this may leads to false positive results from CheckAddr
2016-10-18 21:00:00 +08:00
Tevin Zhang
882b0fcc11
A lot of adjustments
...
1. 'shaker' renamed to 'check', should have named the repo to
tcp-checker
2. Add NewChecker() for creation
3. Add parameter zeroLinger
4. More error handling (Error from syscall.Close is returned)
2016-07-26 19:25:46 +08:00
Tevin Zhang
b34a84cbb7
Add tests
2016-07-22 19:37:07 +08:00
Tevin Zhang
83dc726525
Add more doc with some renames
2016-07-22 19:37:00 +08:00
Tevin Zhang
f2b515e1c4
Add command line tool
2016-07-22 16:58:53 +08:00
Tevin Zhang
fecad2b47b
Add Go Report Card
2016-06-28 18:10:56 +08:00
Tevin Zhang
ecd883184f
Refine package description
2016-06-02 11:08:46 +08:00